安全矩阵

 找回密码
 立即注册
搜索
查看: 3866|回复: 0

phpStudy后门代码执行漏洞分析

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-7-28 20:33:06 | 显示全部楼层 |阅读模式
原文链接:phpStudy后门代码执行漏洞分析

0x1 漏洞简介
2019.9.20日有团队爆出非官网的一些下载站中的phpstudy版本存在后门文件,疑似遭遇供应链攻击,程序包自带PHP的php_xmlrpc.dll模块隐藏有后门。经过分析除了有反向连接木马之外,还可以正向执行任意php代码。

0x2 影响版本

Phpstudy 2016
php\php-5.2.17\ext\php_xmlrpc.dll
php\php-5.4.45\ext\php_xmlrpc.dll
Phpstudy 2018 的php-5.2.17、php-5.4.45
PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll
PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll
0x3 漏洞分析
使用notepad++打开对应的dll文件,搜索@eval,可查看到相关字符串。

使用IDA找到可以字符串,双击再按x找到交叉引用的位置。


F5生成伪代码如下图所示

F5查看伪代码,分析整个函数流程可知:
判断条件是有全局变量且有HTTP_ACCEPT_ENCODING的时候进入内部语句。接下来有两个主要判断来做正向连接和反向连接的操作。主要有两个部分。
第一部分,正向连接:判断ACCEPT_ENCODING如果等于gzip,deflate,读取ACCEPT_CHARSE的内容做base64解密,交给zend_eval_strings()函数可以执行任意恶意代码。
构造HTTP头,把Accept-Encoding改成Accept-Encoding: gzip,deflate可以触发第一个部分。

第二部分,反向连接:判断ACCEPT_ENCODING如果等于compress,gzip,通过关键部分@eval(gzuncompress('%s'));可以看到拼接了一段恶意代码,然后调用gzuncompress方法执行解密。
构造HTTP头,把Accept-Encoding改成Accept-Encoding: compress,gzip可以触发第二部分。
第一部分代码流程

第二部分代码流程

经过分析可知代码中spprintf函数是php官方自己封装的函数,spprintf(&v42, 0, aSEvalSS, v36,aGzuncompress, v42);//v42为缓冲区等于@eval(gzuncompress(‘,27h,’v42′,27h,’)); 实际是实现字符串拼接功能
通过找eval关键词可发现多处存在,第一处spprintf(&v42, 0, aSEvalSS, v36,aGzuncompress, v42);第二处spprintf(&v41, 0, aEvalSS, aGzuncompress,v41);
恶意代码存在变量v41、v42里,在此处往上回溯该变量,发现对该变量进行了处理。
1.从1000D028 到1000D66C的代码解密:

解密后的脚本
2.1000D66C到1000E5C4的代码解密

解密后的脚本

鉴于C2服务器已经失活,看不懂效果,但有一个远程代码执行的功能可以演示,来源于zend_eval_string(v40, 0, &byte_10012884, a3);// 后门代码执行。

0x4 漏洞演示
运行带有漏洞的版本的phpstudy

构造如下exp

system(“net user”);经base64编码后为c3lzdGVtKCJuZXQgdXNlciIpOw==,直接构造该请求,需要两个换行,不然会一直处于等待的状态,没有响应。依据逻辑还需要注意的是Accept-Encoding字段值必须为gzip,deflate,才能去判断是否存在Accept-Charset字段,接着取该字段的值,base64解码后执行,造成了远程代码执行,执行了system(“net user”);
执行后成功显示了net user命令的结果。

0x5 参考资料
https://www.freebuf.com/articles/others-articles/215406.html
https://www.cnblogs.com/17bdw/p/11580409.html









回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 00:43 , Processed in 0.012663 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表