phpStudy 后门漏洞检测分析与漏洞复现

前言:

phpStudy 是国内一款免费的 PHP 调试环境的工具包,并且集成了 Apache、Nginx、MySQL、PHPMyadmin等不同版本软件于一身,也是一款搭建网站的强大工具。在2019年9月20日,网上爆出 phpStudy 软件存在“后门”,作者随后也发布一系列声明,并不是原作者制作后门,而是在2018年的时候,phpStudy 官网被黑客入侵,然后导致黑客在网站放上了存在恶意代码的版本,并且在各大下载网站进行传播,由此导致一系列风波。刚好最近遇到了一个 phpStudy 搭建的站,所以前来复现一下。

影响版本:

phpStudy 2016版 php-5.4
phpStudy 2018版 php-5.2.17
phpStudy 2018版 php-5.4.45

后门分析:

通过网上大佬二进制逆向分析,这里是腾讯御见威胁情报中心于1月份发布的威胁情报后门代码存在于受影响的 PHP 版本的 /etc/php_xmlrpc.dll 模块中,使用 Notepad++ 打开搜索 @eval 就可以发现存在 @eval(%s('%s')) 则说明是存在后门漏洞的,如下图:
phpStudy 后门漏洞检测分析与漏洞复现

漏洞复现:

启动 phpStudy 选择存在后门的 PHP 环境,比如我这里选择 php-5.2.17 版本,如下图,任选其一即可:
phpStudy 后门漏洞检测分析与漏洞复现

接下来使用 Burp 抓包,需要注意的是这里的 Accept-Encoding 中的 deflate 参数值前面有一个空格一定要去掉!然后在下面新增一行,写上如下:

Accept-Charset: cGhwaW5mbygpOw==

phpStudy 后门漏洞检测分析与漏洞复现
成功返回了 phpinfo 页面。
cGhwaW5mbygpOw== 其实是 base64 编码过的 phpinfo(); 代码,也就是我们要把想要执行的代码放在 Accept-Charset 中,然后使用 base64 编码一下即可,比如我还想要执行 net user 命令,那么这个在 PHP 中代码是 echo system("net user"); 经过 base64 编码之后便是如下:

Accept-Charset: ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7

可以看出成功执行了命令
phpStudy 后门漏洞检测分析与漏洞复现

思考:

今天复现这个漏洞的目的呢不仅仅是简单的复现一下,主要是发现现在黑客攻击已经进入到了供应链的上流了,这些后门漏洞更是让人防不胜防,更加需要我们的警惕。但是这个攻击手法确实很新颖,值得我们学习,我们以后安装后门程序也可以学习这样,写入 dll 文件,然后来进行调用。足够隐蔽,很难发现。

附件:

phpStudy 存在漏洞版本软件:https://www.lanzous.com/i70smna
PHPStoryBackDoor后门检测与利用工具:https://github.com/Writeup001/phpStudyBackDoor

参考文章:

PhpStudy2018后门漏洞预警及漏洞复现&检测和执行POC脚本
phpStudy远程RCE漏洞复现以及沦陷主机入侵溯源分析

发表评论

电子邮件地址不会被公开。必填项已用 * 标注