0

0

Burp Suite怎么测试XML外部实体注入(XXE)漏洞

煙雲

煙雲

发布时间:2026-01-10 07:07:26

|

325人浏览过

|

来源于php中文网

原创

Burp Suite 测试XXE漏洞需拦截修改XML请求注入外部实体,通过回显文件、DNS外带或报错确认DTD解析;识别入点看Content-Type和XML结构;构造payload分回显/盲注/错误触发三类;配合Collaborator验证,绕过技巧包括协议替换、参数实体嵌套和编码混淆。

burp suite怎么测试xml外部实体注入(xxe)漏洞

Burp Suite 测试 XXE 漏洞,核心是拦截并修改 XML 类型请求,注入恶意外部实体,观察响应中是否回显文件内容、触发 DNS 请求或引发报错——关键在于确认服务端是否解析了外部 DTD 且未禁用外部实体。

识别可能的 XXE 入点

先找带 XML 特征的请求:Content-Type 为 application/xmltext/xmlapplication/xhtml+xml;请求体是格式良好的 XML(如含 ...);常见于 API 接口、SOAP 请求、配置上传、SAML 身份断言等场景。

注意:有些接口虽不显式声明 XML 类型,但实际接受 XML 数据(比如 POST body 是纯 XML 字符串),需手动测试。

构造并发送 XXE payload

在 Burp Proxy 或 Repeater 中拦截目标请求,将原始 XML body 替换为以下基础 XXE 测试载荷之一:

Speech Studio
Speech Studio

微软语音服务,提供语音到文本、文本到语音和语音翻译功能。

下载
  • 基础文件读取(有回显):

    ]>
    &xxe;
  • 带错误触发的读取(适用于盲 XXE):

    ]>
    &xxe;
    (观察是否返回路径不存在类错误)
  • DNS 外带验证(盲 XXE):
    先起一个监听域名(如用 interact.sh 或自己搭 DNSlog),再发:

    ]>
    &xxe;
    (看是否有 DNS 请求到达)

检查响应与辅助验证

不是所有 XXE 都直接回显内容。要综合判断:

  • 响应中是否包含 /etc/passwd 等敏感内容片段(注意编码,可能被 HTML 编码或 Base64)
  • 响应状态码是否异常(如 500 + 错误信息含 “xxe”、“entity”、“DTD”)
  • 配合 Burp Collaborator:把 payload 中的 URL 换成 Burp 自动生成的 collaborator 域名,发送后点 “Poll Collaborator” 查看是否收到 HTTP/DNS 请求
  • 若服务端用 PHP,尝试 php://filter/read=convert.base64-encode/resource=/etc/passwd 绕过乱码

绕过常见防护的小技巧

遇到过滤或解析失败时可尝试:

  • 改用不同协议:如 file://expect://(PHP)、gopher://(打内网)
  • 用参数实体嵌套:规避关键词过滤,例如:

    %xxe; ]>
    &send;
    (evil.dtd 内定义
  • 尝试不同编码:URL 编码 %20、HTML 实体 zuojiankuohaophpcn,或用注释包裹关键字干扰 WAF

基本上就这些。XXE 测试重在“试”和“看”——别只盯回显,DNS 外带和报错信息同样关键。只要服务端解析 XML 且没禁用外部实体,基本就能打穿。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2319

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1526

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1419

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1413

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1233

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1304

2023.11.13

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

23

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号