phpStudy后门代码执行漏洞分析

admin 2022年10月4日23:12:51评论90 views字数 2030阅读6分46秒阅读模式


phpStudy后门代码执行漏洞分析

0x1 漏洞简介

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


0x2 影响版本

Phpstudy 2016

phpphp-5.2.17extphp_xmlrpc.dll

phpphp-5.4.45extphp_xmlrpc.dll

Phpstudy 2018 的php-5.2.17、php-5.4.45

PHPTutorialphpphp-5.2.17extphp_xmlrpc.dll

PHPTutorialphpphp-5.4.45extphp_xmlrpc.dll

0x3 漏洞分析

使用notepad++打开对应的dll文件,搜索@eval,可查看到相关字符串。

phpStudy后门代码执行漏洞分析
使用IDA找到可以字符串,双击再按x找到交叉引用的位置。
phpStudy后门代码执行漏洞分析

phpStudy后门代码执行漏洞分析
F5生成伪代码如下图所示。
phpStudy后门代码执行漏洞分析
F5查看伪代码,分析整个函数流程可知:
判断条件是有全局变量且有HTTP_ACCEPT_ENCODING的时候进入内部语句。接下来有两个主要判断来做正向连接和反向连接的操作。主要有两个部分。
第一部分,正向连接:判断ACCEPT_ENCODING如果等于gzip,deflate,读取ACCEPT_CHARSE的内容做base64解密,交给zend_eval_strings()函数可以执行任意恶意代码。
构造HTTP头,把Accept-Encoding改成Accept-Encoding: gzip,deflate可以触发第一个部分。
phpStudy后门代码执行漏洞分析
第二部分,反向连接:判断ACCEPT_ENCODING如果等于compress,gzip,通过关键部分@eval(gzuncompress('%s'));可以看到拼接了一段恶意代码,然后调用gzuncompress方法执行解密。
构造HTTP头,把Accept-Encoding改成Accept-Encoding: compress,gzip可以触发第二部分。
phpStudy后门代码执行漏洞分析
第一部分代码流程phpStudy后门代码执行漏洞分析

第二部分代码流程
phpStudy后门代码执行漏洞分析
经过分析可知代码中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的代码解密:
phpStudy后门代码执行漏洞分析
解密后的脚本
phpStudy后门代码执行漏洞分析
2.1000D66C到1000E5C4的代码解密

phpStudy后门代码执行漏洞分析

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


0x4 漏洞演示

运行带有漏洞的版本的phpstudy

phpStudy后门代码执行漏洞分析

构造如下exp

phpStudy后门代码执行漏洞分析

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

phpStudy后门代码执行漏洞分析

执行后成功显示了net user命令的结果。

phpStudy后门代码执行漏洞分析

0x5 参考资料

https://www.freebuf.com/articles/others-articles/215406.html

https://www.cnblogs.com/17bdw/p/11580409.html


E


N


D








Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。

团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室,近三年来在网络安全技术方面开展研发项目60余项,获得各类自主知识产权30余项,省市级科技项目立项20余项,研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。对安全感兴趣的小伙伴可以加入或关注我们。

phpStudy后门代码执行漏洞分析


phpStudy后门代码执行漏洞分析我知道你在看

phpStudy后门代码执行漏洞分析

原文始发于微信公众号(白帽子):phpStudy后门代码执行漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月4日23:12:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   phpStudy后门代码执行漏洞分析http://cn-sec.com/archives/1332352.html

发表评论

匿名网友 填写信息