[TOC]

影响版本:phpstudy 2016(php5.4/5.2) phpstudy 2018(php5.4/5.2)

漏洞原理

  • **漏洞:**程序包自带的PHP的php_xmlrpc.dll模块中有隐藏后门,目录在\phpStudy\php\php-5.4.45\ext

查看是否有后门:

用记事本打开php_xmlrpc.dll文件,搜索eval关键词,能看到eval危险函数

image-20250802172655915

  • php.ini中必须要引用该模块,这样才能去复现该漏洞,若开启了xmlrpc功能,php就会加载这个php_xmlrpc.dll动态链接库文件,其中的恶意代码就会被触发

    查看是否引用该模块:

    • 方法1:通过php.ini配置文件查看,位置在\phpStudy\PHPTutorial\php\php-5.4.45\ext

img

      • 方法2:通过phpinfo查看

img

漏洞复现

环境准备

先安装phpstudy2016,然后选择php5.4.45,启动服务

image-20250802173050187

用记事本打开php_xmlrpc.dll文件,搜索eval关键词,能看到eval危险函数

image-20250802172655915

说明存在该漏洞

攻击过程

浏览器打开开启了web服务的ip,看看是否开启成功。

或者打开web服务里的任意一个php文件

开启成功后,抓包

image-20250802174108875

  1. 先将Accept-Encoding字段中,gzip后面的逗号和deflate之间的空格删除,然后将deflate后面全部删除,只留个空格

image-20250802174359906

  1. 添加一个文件头字段Accept-Charset,后面的内容就是执行的命令的base64编码。

这里执行的是

1
2
system('ipconfig');         (注意末尾一定要有分号)
base64编码为:c3lzdGVtKCdpcGNvbmZpZycpOw==
  1. 发送包,看响应包观察命令是否执行

image-20250802174711582

可以看到执行了,说明漏洞利用成功了。

然后就可以执行任何命令了。