first commit
Some checks failed
Vulhub Format Check and Lint / format-check (push) Has been cancelled
Vulhub Format Check and Lint / markdown-check (push) Has been cancelled
Vulhub Docker Image CI / longtime-images-test (push) Has been cancelled
Vulhub Docker Image CI / images-test (push) Has been cancelled

This commit is contained in:
2025-09-06 16:08:15 +08:00
commit 63285f61aa
2624 changed files with 88491 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
# phpMyAdmin 4.0.x—4.6.2 远程代码执行漏洞CVE-2016-5734
phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。在其查找并替换字符串功能中将用户输入的信息拼接进`preg_replace`函数第一个参数中。
在PHP5.4.7以前,`preg_replace`的第一个参数可以利用\0进行截断并将正则模式修改为e。众所周知e模式的正则支持执行代码此时将可构造一个任意代码执行漏洞。
以下版本受到影响:
- 4.0.10.16之前4.0.x版本
- 4.4.15.7之前4.4.x版本
- 4.6.3之前4.6.x版本实际上由于该版本要求PHP5.5+,所以无法复现本漏洞)
## 环境搭建
运行如下命令启动PHP 5.3 + Apache + phpMyAdmin 4.4.15.6
```
docker compose up -d
```
启动后,访问`http://your-ip:8080`即可看到phpMyAdmin的登录页面。使用`root`:`root`登录。
## 漏洞复现
这个功能需要登录,且能够写入数据。
因为目标环境使用root所以我们可以创建一个临时数据库和数据表进行漏洞利用。这里我们使用POC https://www.exploit-db.com/exploits/40185/ 来复现漏洞。
```
./cve-2016-5734.py -c 'system(id);' -u root -p root -d test http://your-ip:8080/
```
![](1.png)
-d是已经可以写的数据库-c是待执行的PHP语句如果没有指定表名这个POC会创建一个名为`prgpwn`的表。