这周最红的洞,无疑是 WordPress与Drupal xmlrpc.php引发的 DoS攻击 ,究其原理就是针对XML处理的一种叫billion laughs的攻击方式。
《web安全测试 》第5.10上传恶意XML实体文件这一章节就很清楚的介绍了这一攻击 。
攻击原理:构造恶意的XML实体文件耗尽可用内存,因为许多XML解析器在解析XML文档时倾向于将它的整个结构保留在内存中。
恶意XML结构示例:
生成脚本 :
https://github.com/tanjiti/perl_tools/blob/master/billionlaughs.pl
将生成的恶意XML文件的后缀改为xml,使用存在XML处理问题的XML处理器中打开(Windows XP就存在整个问题),然后就可以体验到死机的冻结感了。
我们看看流传的xml128.py PoC,实际就是向目标路径POST如下格式的XML内容,来耗尽内存
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE lolz [
<!ENTITY poc "aaa....">
]>
<lolz>&poc&poc.....</lolz>
参考:
《Web安全测试》
http://www.breaksec.com/?p=6362