返回市场
MCP服务器-pt

MCP服务器-pt

作者:yallasec4 星标更新:2025-04-16

项目介绍

Web 应用渗透测试 MCP

一个全面分析Web应用的工具,重点关注业务逻辑安全漏洞。此主控程序(MCP)系统地爬取、分析并识别出标准扫描器无法检测到的安全问题。

概览

Web 应用渗透测试 MCP 帮助您通过构建完整的应用程序结构图来理解Web应用的业务背景,并识别潜在的安全弱点,特别是在业务逻辑实现方面。

主要特性

全面发现

  • 自动构建整个Web应用的树状结构
  • 映射所有链接、表单和交互元素
  • 识别输入字段及其类型和预期值

身份验证处理

  • 自动检测登录/注销页面
  • 使用凭证访问受保护区域进行身份验证
  • 支持基于Cookie和Bearer Token的身份验证

业务逻辑分析

  • 识别潜在的IDOR(不安全直接对象引用)漏洞
  • 检测数学/计算边界情况
  • 映射可能被操纵的多步骤工作流
  • 发现权限和访问控制问题

高级输入分析

  • 识别输入字段类型(即使未明确定义)
  • 根据字段类型生成适当的测试值
  • 检测可能包含敏感值的隐藏字段

可视化支持

  • 使用DOT格式创建可视化站点地图(可通过Graphviz查看)
  • 强调需要更多关注的复杂页面

安装

# 克隆仓库
git clone https://github.com/yourusername/web-app-penetration-testing-mcp.git

# 进入目录
cd web-app-penetration-testing-m
# 安装依赖项 - 使用uv
pip install -r requirements.txt

使用方法

目前other.py是继续使用的工具版本

基本操作

# 基本使用
python web_app_mcp.py https://example.com

# 带有身份验证
python web_app_mcp.py https://example.com --username user@example.com --password mysecretpassword

# 创建可视化站点地图
python web_app_mcp.py https://example.com --visual

# 控制爬取速度和深度
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字符串
--headersJSON格式的附加头部信息

输出

该工具生成一个 mcp_results.json 文件,包含:

  • 完整的应用程序结构
  • 识别的输入字段及其类型
  • 检测到的身份验证机制
  • 多步骤工作流
  • 潜在的边界情况和漏洞
  • 业务逻辑分析结果

测试流程

  1. 查看生成的 mcp_results.json 文件以了解应用程序结构
  2. 关注“potential_edge_cases”部分作为高价值测试目标
  3. 使用可视化站点地图识别应用程序的复杂区域
  4. 利用生成的测试案例查找业务逻辑漏洞

示例输出

{
  "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": "用户ID参数可能导致访问其他个人资料"
    }
  ]
}

可视化

使用 --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

贡献

欢迎贡献!请随时提交Pull Request。

许可证

本项目采用MIT许可证 - 详情见LICENSE文件。