Web应用程序渗透测试MCP
一个用于分析web应用程序的综合工具,重点是业务逻辑安全漏洞。此主控制程序(MCP)系统地抓取、分析和识别超出标准扫描仪检测范围的潜在安全问题。
概述
Web应用程序渗透测试MCP通过构建应用程序结构的完整映射和识别潜在的安全弱点,特别是在业务逻辑实现中,帮助您了解Web应用程序的业务上下文。
主要特点
全面发现
- 自动构建整个web应用程序的树结构
- 映射所有链接、表单和交互元素
- 用输入字段的类型和预期值标识输入字段
身份验证处理
- 自动检测登录/注销页面
- 可以使用凭据进行身份验证以访问受保护区域
- 支持基于cookie和承载令牌的身份验证
业务逻辑分析
- 识别潜在的IDOR(不安全的直接对象引用)漏洞
- 检测数学/计算边缘情况
- 映射可操纵的多步骤工作流
- 发现权限和访问控制问题
高级输入分析
- 标识输入字段类型(即使没有明确定义)
- 根据字段类型生成适当的测试值
- 检测可能包含敏感值的隐藏字段
可视化支持
- 使用DOT格式创建可视化站点地图(可使用Graphviz查看)
- 突出显示需要更多关注的复杂页面
安装
# Clone the repository
git clone https://github.com/yourusername/web-app-penetration-testing-mcp.git
# Navigate to the directory
cd web-app-penetration-testing-mcp
# Install dependencies - using uv
pip install -r requirements.txt用法
目前other.py是继续的工具版本
基本操作
# Basic usage
python web_app_mcp.py https://example.com
# With authentication
python web_app_mcp.py https://example.com --username user@example.com --password mysecretpassword
# Create visual sitemap
python web_app_mcp.py https://example.com --visual
# Control crawl speed and depth
python web_app_mcp.py https://example.com --delay 1.0 --max-pages 200命令行参数
| 参数 | 描述 |
|---|---|
url | 目标web应用程序URL(必需) |
--username | 经过身份验证的扫描用户名 |
--password | 经过身份验证的扫描密码 |
--visual | 以DOT格式生成可视化站点地图 |
--delay | 请求之间的延迟(秒)(默认值:0.5) |
--max-pages | 要扫描的最大页数(默认值:100) |
--output | 输出文件名(默认:mcp_results.json) |
--cookies | 用于身份验证扫描的Cookie字符串 |
--headers | JSON格式的附加标头 |
输出
该工具生成 mcp_results.json 文件包含:
- 完整的应用程序结构
- 已识别的输入字段及其类型
- 检测到的身份验证机制
- 多步骤工作流程
- 潜在的边缘情况和漏洞
- 业务逻辑分析结果
测试工作流程
- 查看生成的
mcp_results.json了解应用程序结构的文件 - 关注高价值测试目标的“潜在风险案例”部分
- 使用可视化站点地图识别应用程序的复杂区域
- 利用生成的测试用例查找业务逻辑漏洞
输出示例
{
"application_map": {
"https://example.com/": {
"type": "page",
"links": ["https://example.com/login", "https://example.com/about"],
"forms": []
},
"https://example.com/login": {
"type": "authentication",
"links": [],
"forms": [
{
"action": "/process-login",
"method": "POST",
"inputs": [
{"name": "username", "type": "email"},
{"name": "password", "type": "password"}
]
}
]
}
},
"potential_edge_cases": [
{
"url": "https://example.com/user/profile",
"type": "IDOR",
"description": "User ID parameter may allow access to other profiles"
}
]
}可视化
使用时 --visual 标志,该工具生成 sitemap.dot 可以使用Graphviz转换为图像的文件:
dot -Tpng sitemap.dot -o sitemap.png高级用法
使用自定义标题进行扫描
python web_app_mcp.py https://example.com --headers '{"X-API-Key": "your-api-key"}'速率限制扫描
python web_app_mcp.py https://example.com --delay 2.0 --max-pages 50专注于特定领域
python web_app_mcp.py https://example.com/admin --max-depth 3贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
