Hospital WAF Management System MCP Server

English | 中文
医院 Web 应用防火墙 MCP 服务器,为 AI 助手提供 WAF 规则检测能力。支持 SQL 注入、XSS、命令注入、路径遍历检测,内置医院场景专项规则。
✨ 功能特性
- 🔒 SQL 注入检测 — 识别常见 SQLi 攻击模式(UNION注入、布尔盲注、时间盲注、报错注入)
- 🎯 XSS 跨站脚本检测 — 检测反射型/存储型 XSS(script标签、事件处理器、JS URI)
- ⚡ 命令注入检测 — 识别 Unix/Windows 系统命令执行攻击
- 📁 路径遍历检测 — 检测目录穿越攻击及编码绕过
- 🏥 医院专项规则 — 覆盖 HIS/PACS/LIS/RIS 常见漏洞模式
- 🔄 热重载规则 — 修改规则后无需重启服务
- 🧪 自检测试 — 内置攻击样例验证引擎能力
- ⚡ 轻量运行 — 纯 Python 正则引擎,无外部依赖
🚀 快速开始
1. 安装
# 克隆仓库
git clone https://github.com/12211725-star/hospital-waf-mcp.git
cd hospital-waf-mcp
# 安装依赖
pip install -r requirements-mcp.txt
2. 集成到 MCP 客户端
在 MCP 客户端配置文件中添加:
{
"mcpServers": {
"hospital-waf-mcp": {
"command": "python",
"args": ["-m", "waf_mcp"],
"env": {
"WAF_MCP_TRANSPORT": "stdio"
}
}
}
}
Docker 方式
{
"mcpServers": {
"hospital-waf-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "WAF_MCP_TRANSPORT=stdio", "hospital-waf-mcp"],
"env": {}
}
}
}
Streamable HTTP 远程部署
export WAF_MCP_TRANSPORT=http
export WAF_MCP_HOST=0.0.0.0
export WAF_MCP_PORT=8000
python -m waf_mcp
📖 使用方法
检测 SQL 注入
在 Claude / Cursor / 其他 MCP 客户端中:
请帮我检测这个请求是否有安全问题:
URL: https://example.com/search?q=1' OR '1'='1
AI 会调用 waf_check_request 工具,返回:
[
{
"rule_id": "sqli-001",
"category": "SQL Injection",
"severity": "high",
"matched": "1' OR '1'='1",
"description": "检测到 SQL 注入特征"
}
]
检测 XSS 攻击
检测这个 POST 请求的 body:
<script>alert('xss')</script>
查看规则统计
当前 WAF 引擎加载了多少规则?
🎯 提示词指南
安全评估场景
我需要对一个请求进行安全检测,
URL 是 https://hospital.example.com/api/patient?id=1 UNION SELECT,
请帮我分析是否存在攻击特征。
规则运维场景
我刚刚更新了 WAF 规则文件,
请帮我重新加载规则并确认加载成功。
引擎验证场景
请运行 WAF 引擎自检测试,
确认 SQL 注入和 XSS 检测功能正常。
日志分析场景
帮我检测这个可疑请求的完整参数:
URL: https://api.hospital.com/query
Method: POST
Body: {"filter": "'; DROP TABLE users; --"}
Headers: {"Content-Type": "application/json"}
🛠️ 工具列表
| 工具 | 描述 | 参数 |
|---|
waf_check_request | WAF 请求检测 | url: 请求URL, method: HTTP方法, headers: 请求头, body: 请求体, cookies: Cookie |
waf_rule_stats | 规则统计 | 无参数 |
waf_reload_rules | 热重载规则 | 无参数 |
waf_run_self_tests | 自检测试 | 无参数 |
📖 环境变量
| 变量 | 说明 | 默认值 |
|---|
WAF_MCP_TRANSPORT | 传输协议 (stdio/http/sse) | stdio |
WAF_MCP_HOST | HTTP 监听地址 | 127.0.0.1 |
WAF_MCP_PORT | HTTP 监听端口 | 8000 |
WAF_RULES_FILE | 规则文件路径 | rules/waf_rules.mcp.json |
📋 检测能力
SQL 注入检测
| 风险类型 | 严重程度 | 检测条件 |
|---|
| UNION 注入 | High | UNION SELECT 等 |
| 布尔盲注 | High | AND/OR 布尔表达式 |
| 时间盲注 | High | SLEEP/BENCHMARK 等 |
| 报错注入 | High | EXTRACTVALUE/UPDATEXML 等 |
| 堆叠查询 | High | 分号分隔多条 SQL |
XSS 检测
| 风险类型 | 严重程度 | 检测条件 |
|---|
| script 标签 | High | <script> 标签注入 |
| 事件处理器 | High | onclick/onerror 等 |
| JavaScript URI | Medium | javascript: 协议 |
| SVG 注入 | Medium | <svg onload> 等 |
命令注入检测
| 风险类型 | 严重程度 | 检测条件 |
|---|
| Unix 命令注入 | Critical | ; | & $ ` 管道连接 |
| Windows 命令注入 | Critical | & | ^ 命令连接 |
| 危险命令 | Critical | cat/ls/wget/curl 等 |
路径遍历检测
| 风险类型 | 严重程度 | 检测条件 |
|---|
| 目录穿越 | High | ../ 路径穿越 |
| URL 编码绕过 | High | %2e%2e/ 等编码 |
| 双重编码绕过 | High | %252e%252e/ 等 |
医院场景专项
| 系统类型 | 关键词 |
|---|
| HIS | 医院信息系统、门诊、住院、挂号 |
| PACS | 影像、DICOM、放射 |
| LIS | 检验、实验室、生化 |
| RIS | 放射信息系统、影像诊断 |
| EMR | 电子病历、病程记录 |
🔧 开发
git clone https://github.com/12211725-star/hospital-waf-mcp.git
cd hospital-waf-mcp
pip install -e .
# 运行测试
python scripts/run_functional_tests.py
# 本地运行
python -m waf_mcp
📁 项目结构
hospital-waf-mcp/
├── waf_mcp/ # MCP 服务代码
│ ├── __init__.py
│ ├── __main__.py
│ ├── config.py
│ └── server.py
├── waf_engine.py # WAF 检测引擎
├── rules/ # 规则文件
│ ├── waf_rules.mcp.json
│ └── hospital_supplement.json
├── scripts/ # 脚本工具
├── modelscope.yaml # 魔搭配置
├── mcp.json # MCP 元数据
├── mcp_config.json # MCP 客户端配置
├── pyproject.toml # Python 项目配置
└── README.md
📄 许可证
MIT License
🔗 链接