deepeshsolanki455/web-vulnerability-scanner
GitHub: deepeshsolanki455/web-vulnerability-scanner
一个基于 Python 的自动化 Web 漏洞扫描工具,帮助用户发现并报告网站常见的安全风险。
Stars: 0 | Forks: 0
# 自动化Web漏洞扫描器
# [在线演示](https://automated-web-vulnerability-scanner.onrender.com)
- 使用虚拟域名
- https://httpbin.org/
- https://example.com/
## 项目概述
- **目的**:该项目旨在扫描网站常见的安全漏洞,并对发现的问题提供详细的分析和报告。
- **使用技术**:
- Streamlit:用于构建 Python Web 应用的框架。
- Plotly:用于创建交互式可视化图表的库。
- Pandas:用于数据操作的库。
- Requests:用于向网站发起 HTTP 请求。
- BeautifulSoup:用于解析 HTML 和 XML 文档。
- SSL 和 Socket:用于处理 SSL/TLS 连接。
## 文件结构
1. **app.py**:主应用程序文件,包含 Streamlit 应用逻辑。
2. **scanner.py**:包含 SecurityScanner 类,实现扫描逻辑。
3. **utils.py**:包含用于 URL 验证和报告生成的工具函数。
4. **tempCodeRunnerFile.py**:一个临时文件,似乎包含 CSS 样式(未在最终项目中使用)。
## 详细说明
### app.py
- **导入**:
- 导入必要的库,包括 Streamlit、Plotly、Pandas 以及自定义模块(SecurityScanner、validate_url、create_vulnerability_report)。
- **页面配置**:
- 使用 `st.set_page_config` 设置页面标题、布局和侧边栏状态。
- **自定义 CSS**:
- 定义应用程序样式,包括动画、颜色以及卡片、按钮、标题等组件的布局。
- **侧边栏配置**:
- 允许用户选择主题并通过滑块设置扫描深度。
- **主要内容**:
- 显示工具标题和简要描述。
- 接受用户输入的待扫描 URL。
- **扫描按钮**:
- 点击后启动扫描流程。
- 验证 URL 并在无效时提供反馈。
- **进度显示**:
- 扫描过程中显示进度条和状态更新。
- **结果展示**:
- 使用标签页展示结果的不同部分:
- **概览**:显示安全评分和漏洞分布图表。
- **详细分析**:列出每个漏洞的详细发现。
- **原始数据**:显示扫描结果的原始 JSON 数据。
- **扫描摘要**:
- 显示扫描结果摘要,包括总漏洞数和严重发现。
- **下载报告**:
- 允许用户下载详细的扫描结果报告。
- **关于部分**:
- 提供扫描器所检查漏洞类型的信息。
### scanner.py
- **SecurityScanner 类**:
- **初始化**:设置会话和基础 URL。
- **扫描方法**:
- 使用线程池并发检查多个安全方面,协调扫描过程。
- 收集漏洞、计数、严重级别并计算安全评分。
- **漏洞检查**:
- 每个方法(例如 `_check_security_headers`、`_check_ssl_tls`、`_check_xss` 等)检查特定漏洞:
- **安全头**:检查重要安全头部的存在。
- **SSL/TLS**:验证 SSL 证书并检查 TLS 版本。
- **XSS**:测试跨站脚本(XSS)漏洞。
- **SQL 注入**:测试 SQL 注入漏洞。
- **CSRF**:检查跨站请求伪造(CSRF)保护。
- **目录遍历**:测试目录遍历漏洞。
- **敏感数据暴露**:检查是否暴露敏感数据。
- **认证**:验证认证机制的安全性。
- **服务器安全**:检查服务器信息泄露和危险的 HTTP 方法。
- **工具方法**:
- 用于计算漏洞数量、严重级别、安全评分以及生成扫描结果摘要的方法。
### utils.py
- **URL 验证**:
- 用于验证提供的 URL 格式是否正确(支持 http 或 https)。
- **报告生成**:
- 用于从扫描结果创建详细文本报告,包括总体评分、漏洞统计和详细发现。
## 用户交互流程
1. **用户界面**:用户访问 Web 应用,选择主题、设置扫描深度并输入 URL。
2. **开始扫描**:点击“开始扫描”按钮后,应用程序验证 URL 并启动扫描流程。
3. **进度更新**:用户实时查看扫描阶段的进度和进度条。
4. **结果展示**:扫描完成后,用户可以在不同标签页中查看结果、下载报告并阅读所检查的漏洞信息。
## 结论
该项目是一个全面的 Web 漏洞扫描器,为用户提供友好的界面来评估其网站安全性。它结合多种技术提供实时分析、详细报告和漏洞可视化,是 Web 开发者和安全专业人士的有价值工具。
如果您对项目的任何部分有具体问题或需要更多细节,请随时提问!
**注意**:
- 确保系统中已安装 Python。
- 扫描网站需要互联网连接。
- 使用的测试 URL 示例:
- https://example.com/
- https://httpbin.org/
标签:BeautifulSoup解析, DOE合作, HTTP请求, Kubernetes, Linux取证, Pandas数据处理, Plotly图表库, Python Streamlit, SEO安全工具, Socket, Splunk, SSL, URL验证, 主题切换, 交互式图表, 前端界面, 域名验证, 字符串匹配, 开源安全工具, 结构化查询, 网站漏洞扫描, 网络安全, 自动化安全, 进度条, 逆向工具, 逆向工程平台, 隐私保护