【漏洞复现】之PhpStudy“后门”利用复现、修复及使用脚本快速复现
(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)
该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!!
一、事件背景
北京时间9月20日,杭州*发布《杭州警方通报打击涉网违法犯罪暨‘净网2019’专项行动战果》一文,文章曝光了国内知名PHP调试环境程序集成包“PhpStudy软件”遭到黑客篡改并植入“后门”。截至案发,近百万PHP用户中超过67万用户已被黑客控制,并大肆盗取账号密码、聊天记录、设备码类等敏感数据多达10万多组,非法牟利600多万元。
-
漏洞:程序包自带的PHP的php_xmlrpc.dll模块中有隐藏后门
-
php.ini中必须要引用该模块,这样才能去复现该漏洞,若开启了xmlrpc功能,php就会加载这个php_xmlrpc.dll动态链接库文件,其中的恶意代码就会被触发
- 查看是否引用该模块:
- 方法1:通过php.ini配置文件查看,位置D:\phpStudy\PHPTutorial\php\php-5.4.45\ext
- 查看是否引用该模块:
-
-
- 方法2:通过phpinfo查看
-
- 影响版本:phpstudy 2016(php5.4/5.2) phpstudy 2018(php5.4/5.2)
二、PhpStudy“后门”利用复现
攻击者:Windows 10系统
靶机:Windows 7虚拟机
1.查看攻击者与靶机的连通性
2.在靶机中下载带有后门的PhpStudy 2018软件,打开PhpStudy软件,在D:\phpStudy\PHPTutorial\php\php-5.4.45\ext
目录中使用记事本打开php_xmlrpc.dll,搜索eval关键词,查看植入的后门
3.打开PhpStudy 2018,切换到有后门的版本,并启动Apache和MySQL服务,攻击者在浏览器中访问靶机的IP,查看是否能启动WEB服务器
4.开启代理服务器,使用BP拦截浏览器的请求包,将拦截下来的数据发送到到Repeater模块(重发),使用Ctrl+R或者点击Action --> Send to Repater
5.修改请求包,将Accept-Encding(浏览器可解析的编码方式):gzip,deflate逗号后面的空格删除,然后在deflate后面增加一个空格
6.再添加一项:Accept-Charset(规定服务器处理表单数据所接受的字符集):,后跟要执行的命令,即恶意代码,最后提交该请求包,查看响应包
-
恶意代码需要经过Base64转码,可以使用以下方法:
- 在火狐浏览器中:
-
- 在BP工具中,打开Decoder(解码和编码)模块:
- 注:代码后面一定要加;!!!如:system(‘ipconfig’);
- 在BP工具中,打开Decoder(解码和编码)模块:
- 下图可以看到,在响应包中我们可以看到我们想要的信息,复现成功
仅仅上面几个操作就可以获取到想要的信息,由此可见,重视网络信息安全是多么的重要,所以榴莲酱在这里建议大家:
1.不要随意下载,接收和运行不明来源的文件,尽量到官网下载软件
2.密码和用户名最好不要使用同一个
三、修复方法
1.在官网中下载最新的PhpStudy
2.将PhpStudy中php5.4和php5.2里面的php_xmlrpc.dll替换为官方的文件
3.使用phpstudy安全自检修复程序2.0
- 这里显示环境已正常,就说明已经修复成功了,再次查看php_xmlrpc.dll文件,发现已经没有后门了
四、使用脚本快速复现
(这里需要提前在靶机中安装Python3,请参考https://blog.csdn.net/qq_35844043/article/details/81437047,十分详细感谢!!!)
1.在GitHub中找到PHPStudy_BackDoor_Exp,点击Clone or download,复制其中的链接
2.在想要安装PHPStudy_BackDoor_Exp路径目录的空白处右键使用Git下载该脚本
- Git软件需要提前下载好:)
git clone https://github.com/cream492/PHPStudy_BackDoor_Exp.git 下载脚本
3.把下载好的PHPStudy_BackDoor_Exp文件夹拷贝到靶机中,并在PHPStudy_BackDoor_Exp文件夹中开启dos命令窗口
python phpstudy_backdoor.py 运行脚本
- 命令执行出现错误,显示没有request模块
- 解决方法:
pip3 install requests 下载requests模块
- 再次运行脚本,开启脚本成功
4.根据提示,输入目标主机(即出现漏洞的PhpStudy中web服务器地址),以及要执行的命令
- 需要开启PhpStudy中的Apache和MySQL服务
- 根据上图的提示所示,如果要执行os命令,命令必须是php函数,使用system(\'\');格式