AkarshRaj150/Web-Vulnerability-Scanner
GitHub: AkarshRaj150/Web-Vulnerability-Scanner
一个轻量级的 Python Web 漏洞扫描器,通过爬取网站并注入 payload 来检测 SQL 注入、XSS 和缺失的安全标头,并生成带修复建议的报告。
Stars: 0 | Forks: 0
# 基础 Web 漏洞扫描器
这是一个轻量级的教育性 Web 漏洞扫描器,使用
Python 编写。它会爬取网站,然后测试它找到的每个页面/表单/参数,
检测是否存在 **SQL 注入**、**跨站脚本攻击 (XSS)** 以及
**缺失的安全标头**,并生成带有
严重性评级和修复建议的 HTML 或 JSON 报告。
## 第 1 部分 — 这是什么!
把这个工具想象成一个机器人,它会:
1. **遍历网站**,就像一个人点击每个链接一样(即“爬虫”)。
2. 在每个页面上,它会**注意到任何表单**(登录框、搜索框、
评论框)以及 **URL 中的任何参数**(例如 `?id=5`)。
3. 然后,它会使用精心构造的文本(即“payload”)去**探测这些输入项中的每一个**,
这些文本已知会破坏存在漏洞的应用程序 —— 例如,发送
一个单引号 `'` 来看看它是否会破坏数据库查询,或者发送
`` 来看看网站是否会将其作为
实际代码而不是无害文本显示出来。
4. 它**监视网站的反应** —— 它是否显示了数据库
错误?恶意脚本是否未经转义就出现在页面中?
它的响应是否比平时慢(暗示执行了延时的数据库
命令)?
5. 最后,它**将其发现的所有内容写入报告**中供你
阅读,并按每个问题的严重程度进行排名,同时提供有关如何修复的建议。
## 第 2 部分 — 安装所需内容
### 第 1 步:安装 Python
你需要 Python 3.8 或更高版本。
- **Windows**:访问 https://www.python.org/downloads/,下载
安装程序并运行,确保在安装过程中勾选
**“Add Python to PATH”**。
- **Mac**:Python 通常是预装的。打开“Terminal”应用
并输入 `python3 --version`。如果缺失,请从
https://www.python.org/downloads/ 安装,或者如果你有
Homebrew,请运行 `brew install python3`。
- **Linux**:几乎总是预装的。在终端中使用 `python3 --version`
检查。如果缺失:`sudo apt install python3 python3-pip`。
打开终端(Windows 上的 Command Prompt/PowerShell,
Mac/Linux 上的 Terminal)并输入以下命令来验证它是否有效:
```
python3 --version
```
你应该会看到类似 `Python 3.12.3` 的输出。
### 第 2 步:创建项目文件夹
```
mkdir webvulnscanner
cd webvulnscanner
```
这将创建一个名为 `webvulnscanner` 的文件夹,并将你的终端移动
“进去”,以便你接下来创建的每个文件都能存放在正确的位置。
### 第 3 步:获取项目文件
将该项目中的所有文件(如下面第 3 部分所列)复制到你的
`webvulnscanner` 文件夹中,并保持相同的文件夹结构 —
尤其是 `payloads/` 子文件夹。
### 第 4 步:安装两个必需的库
此项目依赖于两个外部 Python 包:
- **requests** — 允许 Python 发出 HTTP 请求(以编程方式访问网页)
- **beautifulsoup4** — 允许 Python 解析 HTML 并提取链接/表单
使用以下命令安装它们:
```
pip3 install -r requirements.txt
```
(如果无法识别 `pip3`,请尝试 `pip install -r requirements.txt` 或
`python3 -m pip install -r requirements.txt`。)
你应该会看到它开始下载并以“Successfully installed ...”结束。
## 第 3 部分 — 项目结构
```
webvulnscanner/
├── main.py # The script you actually run
├── config.py # All settings in one place
├── crawler.py # Discovers pages, forms, and parameters
├── sqli_scanner.py # SQL Injection detection logic
├── xss_scanner.py # XSS detection logic
├── header_checker.py # Security header checks
├── report_generator.py # Builds the HTML/JSON report
├── requirements.txt # List of required Python packages
├── test_vuln_app.py # A tiny fake vulnerable site, for safe practice
└── payloads/
├── sqli_payloads.json # SQLi test strings (editable!)
└── xss_payloads.json # XSS test strings (editable!)
```
**为什么需要这么多文件而不是一个大文件?** 这被称为
“关注点分离” —— 每个文件只负责一项工作。这使得代码
更易于阅读、修复和扩展(例如,以后你可以添加一个新的
`command_injection_scanner.py`,而无需改动其他任何内容)。
## 第 4 部分 — 各个部分的工作原理
### `config.py` — 设置文件
包含一些配置,例如:最多爬取多少页面、请求之间
暂停多长时间(以免对服务器造成过大压力),以及我们检查哪些安全
标头。如果你想改变扫描器行为,这通常是
首选的查看之处。
### `crawler.py` — 探索器
- 从你的目标 URL 开始。
- 首先读取 `robots.txt`(网站发布的一个文件,用于说明自动
化工具不应触碰哪些页面)并遵守它 —— 这是
“通过遵守 robots.txt 进行安全爬取”的交付成果。
- 下载每个页面的 HTML,使用 BeautifulSoup 查找:
- 每个 `` 链接(以继续爬取)
- 每个 `
标签:CISA项目, Homebrew安装, Python, Web安全, 字符串匹配, 无后门, 蓝队分析, 逆向工具