├── 1.png
└── README.md
/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kk12-30/vue_scan/14209138a1445144792cde6052ca4c1549826b81/1.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue未授权接口扫描工具
2 |
3 |
4 |
5 |
6 |
7 |
8 | ## 功能介绍
9 |
10 | 这是一个用于扫描Vue框架前台泄露的未授权目录接口的图形化工具。该工具可以帮助安全测试人员快速发现Vue应用中可能存在的未授权访问漏洞,提高渗透测试效率。
11 |
12 | 
13 |
14 | ### 主要功能
15 |
16 | 1. **JS文件爬取**:支持爬取指定网站的前端JS文件URL,自动处理相对路径和绝对路径
17 | 2. **路由路径提取**:支持从JS文件中提取Vue路由接口路径,识别多种路由定义格式
18 | 3. **接口测试**:支持对提取的接口进行逐一测试访问,检测未授权访问漏洞
19 | 4. **响应分析**:显示接口访问的响应包大小和内容,便于判断是否存在未授权访问
20 | 5. **自定义验证**:支持自定义URL验证,灵活应对不同场景
21 | 6. **高级渲染**:支持使用Playwright进行页面渲染,更准确地检测SPA应用
22 |
23 | ## 使用方法
24 |
25 | ### 环境要求
26 |
27 | - Python 3.6+
28 | - PyQt5 及相关依赖
29 | - requests
30 | - BeautifulSoup4
31 | - Playwright
32 | - 需存在路径“C:\Program Files\Google\Chrome\Application\chrome.exe”
33 |
34 | ### 安装依赖
35 |
36 | ```bash
37 | # 安装基本依赖
38 | pip install -r requirements.txt
39 | ```
40 |
41 | ### 运行程序
42 |
43 | ```bash
44 | vue_scan.exe
45 | ```
46 |
47 | ### 使用步骤
48 |
49 | 1. **爬取JS文件**:
50 | - 在"初始URL"输入框中输入目标网站URL(例如:http://example.com/)
51 | - 点击"Get-JS"按钮爬取该网站的所有JS文件URL
52 |
53 | 2. **提取路径**:
54 | - JS文件爬取完成后,点击"getPath"按钮从JS文件中提取Vue路由路径
55 |
56 | 3. **测试路径**:
57 | - 在"自定义URL"输入框中输入要测试的基础URL(建议在URL后面加上#号,例如:https://www.example.com/#/)
58 | - 点击"测试路径"按钮对所有提取的路径进行测试
59 |
60 | 4. **查看结果**:
61 | - 在"测试结果"标签页中查看每个路径的测试结果,包括响应大小和内容
62 | - 通过比较响应大小和内容,判断是否存在未授权访问
63 |
64 | 5. **单独验证URL**:
65 | - 在"自定义URL"输入框中输入完整的URL
66 | - 点击"verify"按钮进行验证
67 |
68 | ## 注意事项
69 |
70 | - Vue应用的URL通常包含#号(例如:https://example.com/#/)
71 | - 响应包大小相似可能表示接口访问返回的是原来的前台登录界面,即不存在未授权访问
72 | - 通过响应内容可以更直观地判断页面是否成功跳转
73 |
74 | ## 原理说明
75 |
76 | Vue框架的路由信息通常在JS文件中以`path: '/xxx'`的格式存在。本工具通过正则表达式提取这些路径,然后拼接到基础URL后进行访问测试,通过分析响应内容和大小来判断是否存在未授权访问。
77 |
--------------------------------------------------------------------------------