MCP浏览器-注入测试版
用于无头浏览器自动化的模型上下文协议(MCP)服务器 全面的注射测试能力该服务器允许AI助手(LLM)使用迭代、自适应的方法智能地测试web应用程序的安全漏洞。
🎯 核心哲学
法学硕士是大脑,工具是执行者。
该项目使LLM能够通过以下方式进行智能安全测试:
- 提供简单
browser_test_payload一次测试一个有效载荷的工具 - 在工具说明中包括全面的注射测试指南
- 让LLM生成有效载荷、分析结果并迭代调整策略
- 没有内置的有效载荷库-LLM学习并创建自己的
✨ 特性
浏览器自动化
- 多浏览器支持:Chromium、Firefox和WebKit浏览器
- 会话管理:具有唯一ID的多个浏览器会话
- 导航:导航到具有可配置等待条件的URL
- 元素交互:单击、键入并与web元素交互
- 截图:捕获整页或元素截图
- 文本提取:从web元素中提取文本内容
- 表单自动化:填写包含多个字段的表单
- JavaScript执行:在页面上执行自定义JavaScript
- 移动仿真:模拟移动设备和方向
- PDF生成:从网页创建PDF
- 文件下载:从网页下载文件
- 网络侦听:监控和模拟网络请求
🔥 注射测试(新增!)
- 单有效载荷测试:一次测试一个有效载荷,并进行详细分析
- 智能响应分析:检测SQL错误、XSS反射、时间延迟、WAF块
- 综合指南:工具描述中有500多行注射测试方法
- 迭代工作流:LLM生成有效载荷→ 测试→ 分析→ 适应→ 重复
- 所有注射类型:SQL、XSS、XXE、SSTI、命令、LDAP、NoSQL
- WAF绕过策略:编码技术、混淆方法
- 不需要API密钥:功能齐全,无外部依赖
🚀 安装
# 1. Clone repository
git clone
cd mcp-browser-injection-extented
# 2. Install dependencies
npm install
# 3. Install Playwright browsers
npm run install-browsers
# 4. Build the project
npm run build📖 用法
启动服务器
# Production
npm start
# Development
npm run dev配置MCP客户端
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"mcp-browser": {
"command": "node",
"args": ["/absolute/path/to/mcp-browser-injection-extented/dist/index.js"],
"env": {
"NODE_ENV": "production"
},
"description": "MCP Browser with injection testing capabilities"
}
}
}🎯 注射测试工作流程
LLM如何使用该工具
这 browser_test_payload 该工具包括一份教授法学硕士的综合指南:
1. SQL注入测试
Phase 1: Test basic payload
→ browser_test_payload("#username", "'")
Phase 2: Analyze result
→ If SQL error → escalate to ' OR 1=1--
→ If blocked (403/406) → try encoding %27
→ If success → extract data with UNION SELECT
Phase 3: Iterate based on findings
→ Generate next payload adaptively2. XSS测试
Phase 1: Test reflection
→ browser_test_payload("#comment", "alert(1)")
Phase 2: Check if reflected
→ If unencoded → HIGH CONFIDENCE XSS
→ If encoded → try bypass:
→ If blocked → Unicode escape: \\u003cscript\\u003e3. 命令注入
Phase 1: Test basic commands
→ browser_test_payload("#input", "; ls")
Phase 2: If no output visible
→ Try time-based blind: ; sleep 5
→ If delay detected → escalate to data exfiltrationLLM对话示例
User: "Test this login form for SQL injection: https://example.com/login"
LLM:
1. Navigate to the page
→ browser_navigate("https://example.com/login")
2. Test basic SQL injection
→ browser_test_payload("#username", "'")
3. [Analyzes response]
Response: "SQL error: unclosed quotation"
Confidence: HIGH
Recommendation: "Try extracting data with UNION SELECT"
4. Escalate exploitation
→ browser_test_payload("#username", "' UNION SELECT NULL,NULL--")
5. [Analyzes again]
Response: "Different content length, potential data extraction"
6. Document finding
→ browser_screenshot("sql_injection_evidence.png")🔧 可用工具
浏览器导航
browser_navigate-导航到URLbrowser_get_page_info-获取页面信息
元素交互
browser_click-点击元素browser_type-键入文本browser_wait_for_element-等待元素browser_fill_form-填写表格
内容提取
browser_extract_text-提取文本browser_screenshot-截图
页面操作
browser_scroll-滚动页面browser_execute_script-执行JavaScriptbrowser_mobile_emulate-模拟移动设备
文件操作
browser_download_file-下载文件browser_create_pdf-生成PDF
网络控制
browser_intercept_requests-监控/模拟请求
🔥 安全性测试
browser_test_payload-通过详细分析测试单次喷射有效载荷
📚 工具描述指南
这 browser_test_payload 该工具包括:
综合测试方法:
- SQL注入:基本、基于时间、UNION、盲、编码、WAF旁路
- XSS:反射检测、事件处理程序、特定上下文、多语言
- 命令注入:基本命令、盲技术、基于时间
- 皮肤软组织感染:模板检测、引擎识别、RCE利用
- 非关系型数据库:MongoDB运算符、身份验证旁路、正则表达式注入
- 轻量级目录访问协议:通配符注入、过滤器操作
- XXE:基本、盲、参数实体
编码参考:
- URL编码:
' → %27, < → %3C - HTML实体:
' → ', < → < - Unicode转义:
' → \\u0027 - 双重编码:
' → %2527
WAF绕过技术:
- 病例变化:
UnIoN SeLeCt - 评论注入:
'/**/OR/**/1=1-- - 新线注射:
'%0AOR%0A1=1-- - 替代语法
🧠 为什么采用这种方法?
传统方法(❌ 有限):
Tool has 50+ built-in payloads
→ LLM says "test this field"
→ Tool tests all 50 payloads automatically
→ Returns results
→ LLM doesn't learn or adapt我们的方法(✅ 智能):
LLM reads comprehensive guide
→ LLM generates first payload: '
→ Tool tests and returns analysis
→ LLM analyzes: "SQL error detected"
→ LLM adapts: generates ' OR 1=1--
→ Tool tests again
→ LLM escalates: generates ' UNION SELECT
→ Iterative, adaptive, intelligent testing🎓 LLM学到了什么
从工具描述中,LLM了解到:
- 每种注射类型是什么
- 如何进行系统测试
- 如何解读回应
- 何时升级利用
- 如何绕过WAF/过滤器
- 编码技术
- 特定上下文的有效载荷
- 盲测策略
🏗️ 建筑
┌─────────────────┐
│ LLM (Claude) │ ← Reads tool description guide
│ │ ← Generates payloads iteratively
│ │ ← Analyzes results adaptively
└────────┬────────┘
│
↓ Single payload at a time
┌─────────────────┐
│ browser_test │ ← Executes ONE payload
│ _payload │ ← Analyzes response
│ │ ← Returns detailed analysis
└────────┬────────┘
│
↓
┌─────────────────┐
│ PayloadAnalyzer │ ← SQL error detection
│ │ ← XSS reflection detection
│ │ ← Time-based detection
│ │ ← WAF detection
│ │ ← Status code analysis
└─────────────────┘📊 响应格式
{
"success": true,
"payload": "' OR 1=1--",
"isVulnerable": true,
"confidence": "high",
"evidence": [
"SQL error message detected: mysql",
"Status code changed from 200 to 500"
],
"detectedBehaviors": [
"SQL_ERROR_MESSAGE",
"SERVER_ERROR"
],
"responseAnalysis": {
"statusCode": 500,
"responseTime": 1234,
"baselineTime": 890,
"timeDifference": 344,
"responseLengthChange": 156
},
"recommendation": "✅ HIGH CONFIDENCE SQL INJECTION! Try extracting data with UNION SELECT or use time-based blind techniques."
}🔒 安全考虑
- 浏览器会话以无头模式运行
- 无持久Cookie或存储
- 网络请求可能被拦截
- JavaScript执行是沙盒化的
- 此工具仅用于授权的安全测试
🛠️ 发展
# Build
npm run build
# Development mode
npm run dev
# Lint
npx eslint index.ts📦 依赖项
- @模型上下文协议/sdk:MCP协议实施
- 剧作家:浏览器自动化框架
- TypeScript:类型安全和编译
- TSX:开发中的TypeScript执行
⚠️ 免责声明
此工具专为 仅限授权安全测试。仅在以下情况下使用:
- 您拥有的应用程序
- 您有明确权限测试的系统
- CTF挑战和教育环境
- 授权渗透测试业务
未经授权的测试是非法和不道德的。
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
\[在此处添加您的许可证信息\]
🙏 支持
有关问题和疑问,请在存储库上打开一个问题。
______________________________________________________________________
内置❤️ 用于智能自适应安全测试
