phpstudy漏洞复现
phpstudy简介
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。
对于搭建网站新手来说是一个非常不错的选择
环境搭建
phpstudy包括
apache 中间件 网站代理
php 后端代码 //服务
mysql 数据库用来存储数据
- 运行微软常用工具进行安装
- 解压phpstudy
-
启动phpstudy
-
输入127.0.0.1进行测试出来探针表示安装好了
漏洞简介
在phpstudy中存在一种RCE漏洞(Remote Code|Command Execute)由于程序中预留了执行代码或者命令的接口,并且提供了给用户使用的界面,导致被黑客利用, 控制服务器。
漏洞原理
在访问php文件时会走服务器,那么他将会去执行php代码通过原程序预留的backdoor调用php中的system()函数,里面的变量上传为执行的命令,客户端可控,并且没有做严格的过滤,从而导致这些代码在服务端执行
这里拿php-5.4.45版本举例
这个后门是在phpstudy安装目录下的php>php-5.4.45>ext>php_xmlrpc.dll文件里第207行的eval函数
这个函数就是一个后门非常危险可以执行命令
危险等级
攻击者可以通过RCE继承web用户的权限,执行php代码,如果web的权限比较高的话,就可以读写目标服务器任意文件的内容,甚至控制整个网站
漏洞复现
在phpstudy的web根目录下(phpstudy/WWW/)创建一个php文件写入简单的php代码
<?php
phpinfo();
?>
写入之后保存
启动phpstudy
对其ip进行查询
在自己电脑上访问目标网站
点击我们刚刚写好的php文件进行查看
显示正常这样phpstudy就启动成功了
接下我们启动burpsuite进行抓包
点击Proxy代理模式将拦截开启
打开burpsuite自带的浏览器输入刚刚访问的网站
回车进行抓包
我们看到这个包已经被我们抓到了将他CTRL+R发送到重放模块
切记将Accept-Encoding这个请求第二个参数前面的空格删除否则就会执行失败
在最后加入一行Accept-Charset: 请求,在请求后面附上php代码中的system();函数里面的参数为要执行的命令在将其转为base64编码
- 进行base64编码
- 放在Accept-Charset请求后点击send发送
命令执行成功ACE漏洞复现完毕