(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)

 

该复现参考网络中的文章,该漏洞复现仅仅是为了学习交流,严禁非法使用!!! 

 

一、事件背景

  北京时间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’);

  • 下图可以看到,在响应包中我们可以看到我们想要的信息,复现成功

 

仅仅上面几个操作就可以获取到想要的信息,由此可见,重视网络信息安全是多么的重要,所以榴莲酱在这里建议大家:

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('');格式