├── img.png
├── Save Multiple URLs
├── icon.png
├── manifest.json
├── popup.html
├── style.css
└── popup.js
└── README.md
/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/exp3n5ive/Save-Multiple-URLs/HEAD/img.png
--------------------------------------------------------------------------------
/Save Multiple URLs/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/exp3n5ive/Save-Multiple-URLs/HEAD/Save Multiple URLs/icon.png
--------------------------------------------------------------------------------
/Save Multiple URLs/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 3,
3 | "name": "Save Multiple URLs",
4 | "version": "1.0",
5 | "description": "复制或导出当前窗口所有标签页的 URL",
6 | "permissions": ["tabs"],
7 | "action": {
8 | "default_popup": "popup.html",
9 | "default_icon": "icon.png"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Save Multiple URLs/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 保存标签页 URL
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Save Multiple URLs/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: Arial, sans-serif;
3 | padding: 10px;
4 | width: 400px;
5 | }
6 |
7 | textarea {
8 | width: 100%;
9 | height: 250px;
10 | margin-bottom: 10px;
11 | resize: none;
12 | font-size: 12px;
13 | }
14 |
15 | .button-group {
16 | display: flex;
17 | gap: 10px;
18 | }
19 |
20 | button {
21 | flex: 1;
22 | padding: 8px;
23 | font-size: 14px;
24 | cursor: pointer;
25 | }
26 |
27 | #status {
28 | margin-top: 8px;
29 | color: green;
30 | font-size: 14px;
31 | }
32 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Save Multiple URLs
2 |
3 | Save Multiple URLs 是一个专为渗透测试人员、红队工程师、网络安全研究者打造的浏览器插件,便于快速保存当前所有打开的网页 URL,避免在测试过程中遗漏关键目标。
4 |
5 | ---
6 |
7 | ## 🚀 功能特点
8 |
9 | - ✅ 一键获取当前所有浏览器标签页的 URL
10 | - ✅ 支持复制 URL 到剪贴板
11 | - ✅ 支持导出 URL 为 `.txt` 文本文件
12 | - ✅ 界面简洁,操作便捷
13 | - ✅ 无需网络权限,纯本地操作,安全可靠
14 |
15 | ---
16 |
17 | ## 🛠 使用场景
18 |
19 | - 在对目标进行信息收集、目录遍历、页面测试时,临时打开了大量标签页,使用插件一键保存,避免手动记录出错。
20 | - 渗透测试项目报告撰写前,快速整理访问过的所有目标 URL。
21 | - 日常浏览多个测试站点时,便于归档保存以供后续分析。
22 |
23 | ---
24 |
25 | ## 📷 使用截图
26 |
27 | > 可视化界面简洁直观:
28 | > - 「📋 复制到剪贴板」按钮:一键复制所有 URL 到剪贴板
29 | > - 「💾 导出为 txt」按钮:保存为文件到本地
30 |
31 | 
32 |
33 | ---
34 |
35 | ## 📦 安装方式
36 |
37 | 1. 下载或克隆本项目
38 | 2. 打开浏览器 `chrome://extensions/`
39 | 3. 打开「开发者模式」
40 | 4. 点击「加载已解压的扩展程序」,选择项目目录
41 |
--------------------------------------------------------------------------------
/Save Multiple URLs/popup.js:
--------------------------------------------------------------------------------
1 | // 查询当前窗口所有标签页并显示
2 | chrome.tabs.query({ currentWindow: true }, function (tabs) {
3 | const urlList = document.getElementById('urlList');
4 | const urls = tabs.map(tab => tab.url).join('\n'); // 拼接成多行字符串
5 | urlList.value = urls;
6 | });
7 |
8 | // 📋 复制到剪贴板
9 | document.getElementById('copyBtn').addEventListener('click', async function () {
10 | const text = document.getElementById('urlList').value;
11 | try {
12 | await navigator.clipboard.writeText(text);
13 | document.getElementById('status').textContent = '✅ 已复制到剪贴板';
14 | } catch (err) {
15 | document.getElementById('status').textContent = '❌ 复制失败,请手动复制';
16 | }
17 | });
18 |
19 | // 💾 导出为 .txt 文件
20 | document.getElementById('exportBtn').addEventListener('click', function () {
21 | const text = document.getElementById('urlList').value;
22 | const blob = new Blob([text], { type: 'text/plain' }); // 创建文本 Blob
23 | const url = URL.createObjectURL(blob); // 创建下载链接
24 | const a = document.createElement('a');
25 | a.href = url;
26 | a.download = 'tabs-urls.txt';
27 | a.click();
28 | URL.revokeObjectURL(url); // 清理内存
29 | });
30 |
--------------------------------------------------------------------------------