用途
本技能用于执行 HTTP 参数污染(HTTP Parameter Pollution,HPP)攻击测试。HPP 通过注入重复的请求参数,利用不同技术栈对重复参数处理方式的差异,尝试绕过输入验证、WAF 规则及其他安全控制。该技能面向授权安全测试与教育目的,明确禁止对未拥有或未获得书面许可的系统进行未授权测试。
主要能力
- 识别目标服务器对重复参数的处理行为(如 Apache/PHP 取最后一个值、ASP.NET/IIS 逗号拼接、JSP/Tomcat 取第一个值、Node.js/Express 返回数组、Python/Flask 取第一个值)。
- 执行服务端 HPP:通过拆分载荷绕过输入验证,覆盖安全关键参数(如支付金额、账户、价格等)。
- 执行客户端 HPP:通过 URL 操纵在链接中反射注入参数,影响社交分享、重定向等场景。
- 利用 HPP 绕过 WAF 规则:将 SQL 注入或 XSS 载荷拆分到重复参数中,或使用 URL 编码(%26)注入额外参数,以及在 HTTP 头中发送重复头(如 X-Forwarded-For)。
- 测试 OAuth 与支付流程:注入重复的 redirect_uri 窃取授权码,操纵价格、数量、优惠券等参数。
- 自动化 HPP 测试:使用 Burp Intruder/Repeater、param-miner 扩展、OWASP ZAP、Arjun、ffuf、Wfuzz 等工具。
使用方式
技能按工作流分步执行:
- 识别参数处理行为:使用 curl 发送重复参数(如
curl -v "http://target.com/search?q=first&q=second"),观察应用实际使用哪个值;同时测试 POST 体中的重复参数。 - 执行服务端 HPP:将原本被 WAF 拦截的载荷拆分到重复参数中(如
curl "http://target.com/api/user?id=1%20OR&id=1%3D1"),或在 POST 体中覆盖安全关键参数(如curl -X POST http://target.com/transfer -d "to_account=victim&amount=100&to_account=attacker")。 - 执行客户端 HPP:通过 URL 操纵注入参数(如
http://target.com/page?param=value%26injected_param=evil_value),测试社交分享与重定向链接。 - 绕过 WAF 规则:拆分 SQL 注入或 XSS 载荷(如
curl "http://target.com/search?q=1' UNION&q=SELECT password FROM users--"),使用 URL 编码 HPP,或在 HTTP 头中发送重复头。 - 测试 OAuth 与支付流程:注入重复 redirect_uri(如
curl "http://target.com/oauth/authorize?client_id=legit&redirect_uri=https://legit.com/callback&redirect_uri=https://evil.com/steal"),操纵支付金额、优惠券等。 - 自动化测试:使用 Burp Intruder 复制参数、param-miner 自动发现、OWASP ZAP HPP 扫描器(如
zap-cli quick-scan --self-contained --start-options '-config api.disablekey=true' http://target.com),或自定义 Python 脚本(如python3 hpp_tester.py --url http://target.com/api/action --params "id,role,amount" --method POST)。
适用场景
- WAF 绕过:当 WAF 单独检查每个参数值而服务器拼接它们时,将 SQL 注入或 XSS 载荷拆分到重复参数中。
- 支付操纵:在电商结账流程中提交重复参数值,覆盖价格或数量参数。
- OAuth 重定向劫持:注入重复 redirect_uri 参数,将授权码重定向到攻击者控制的服务器。
- 访问控制绕过:在请求中覆盖角色或权限参数,提升权限或访问受限资源。
- 输入验证绕过:通过注入意外的重复参数,规避客户端或服务端验证。
限制与前提
- 需要 Burp Suite Professional(含 Intruder 和 Repeater 模块)、cURL 或 httpie、目标应用技术栈识别能力,以及对 HTTP 协议和查询字符串解析的理解。
- 必须了解不同服务端参数处理差异(first、last、array、concatenated)。
- 仅限授权安全测试与教育用途;未经授权对未拥有或未获得书面许可的系统使用属违法行为,可能违反计算机欺诈相关法律。
- 输出格式为 HPP 评估报告,包含目标、服务器技术、漏洞、参数处理矩阵、发现列表(端点、参数、影响、严重性)及修复建议(严格参数验证拒绝重复参数、使用首次出现值忽略后续重复、应用检测重复参数模式的 WAF 规则、服务端验证所有参数)。