如何使用OWASP ZAP检测XXE(XML外部实体)漏洞?
使用OWASP ZAP检测XXE漏洞实操步骤
作为安全测试新手,直接按以下步骤落地即可:
第一步:准备ZAP环境
确保用的是最新版OWASP ZAP(旧版XXE检测逻辑可能存在疏漏),打开后在「目标」面板输入测试网站URL,点击「添加到站点」。第二步:抓取含XML的请求
将浏览器代理设为127.0.0.1:8080(ZAP默认代理端口),随后在浏览器中操作目标网站的所有功能,重点触发提交XML数据的场景——比如API接口调用、XML格式表单提交。ZAP会自动把这些请求记录到「历史」面板。第三步:启用XXE检测规则
点击顶部菜单「工具」→「选项」→「扫描策略」,找到名为「XXE Injection」的规则组,确保所有子规则处于启用状态。如果想针对性扫描,也可以新建扫描策略,只保留XXE相关规则,减少无关干扰。第四步:发起主动扫描
- 批量扫描:在「目标」面板选中整个站点,右键选择「主动扫描」,在弹出的配置窗口确认XXE检测项已勾选后启动扫描。
- 精准扫描:如果已定位到特定XML请求,直接在「历史」面板选中该请求,右键→「主动扫描此请求」,效率更高。
第五步:自定义XXE Payload(可选)
ZAP内置payload可能不够全面,可自行补充:- 切换到「Payloads」面板,新建一个payload列表。
- 加入常用XXE测试语句,比如读取本地文件的payload:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///etc/passwd">]> <test>&xxe;</test> - 在扫描配置中指定使用这个自定义payload列表。
第六步:分析警报与验证漏洞
扫描结束后,在「警报」面板筛选「XXE Injection」相关条目,查看请求和响应详情:- 如果响应返回敏感文件内容(比如/etc/passwd的内容),直接确认漏洞存在。
- 若警报显示「可能存在XXE」,用ZAP的「Repeater」模块重放请求,或结合ZAP Collaborator生成监听域名替换payload里的文件路径,观察是否能收到外部请求,以此验证漏洞。
内容的提问来源于stack exchange,提问作者user2345
相关产品推荐
相关产品推荐

