【漏洞復現】PHPmyadmin 4.8.1後臺Getshell新姿式

原文地址:https://mp.weixin.qq.com/s/HZcS2HdUtqz10jUEN57aogphp

早上看到羣裏在討論一個新姿式,phpmyadmin後臺getshell,不一樣於以往須要知道網站的絕對路徑,這個漏洞只要數據庫和網站源碼在同一個盤符下便可直接getshell。html

漏洞詳情請看原文地址,這裏只進行復現。web

打開本身的phpstudy,發現本身下載的是4.0.10.20版本的,先查看phpmyadmin目錄下的index.php文件,發現代碼以下:sql

這裏是基於白名單的機制,target參數只能存在$goto_whitelist數組中,具體內容以下:shell

由這兩處代碼能夠判斷phpmyadmin 4.0.10.20版本的不存在該漏洞。數據庫

咱們繼續下載phpmyadmin 4.8.1版本的進行測試。index.php代碼以下:數組

由上圖紅框處可知這裏是基於黑名單機制進行判斷,只要target參數的值不是"import.php"和"export.php"便可進行下一步判斷。函數

checkPageValidity函數的代碼以下:測試

須要注意的是,$_GET、$_POST、$_REQUEST等得到的參數都是默認進行一次url解碼的,可是這裏對傳入的參數又進行了一次url解碼。網站

所以咱們能夠將【?】進行兩次url編碼,構造以下url:

http://localhost/phpMyAdmin/index.php?kk=phpinfo();&target=db_sql.php%253F/../../../MySQL/data/test/hack.frm

checkPageValidity函數對傳入的target參數進行判斷,target參數的值開始到【?】的文件須要在白名單whitelist內。

判斷成立後在index.php文件中便直接使用inclde函數進行文件包含,由此咱們利用兩次url編碼的方法便繞過了檢測。

這裏能夠利用包含MySQL自帶的配置文件my.ini來判斷當前路徑。

找出MySQL文件的路徑後,便可利用建立表的方式寫入webshell,再利用這個漏洞進行包含,便可getshell。

建立表以後查看數據庫文件,成功寫入。

利用該漏洞包含給文件,成功getshell。

 

注意☆☆☆:這裏寫入的一句話須要用GET方式,POST方式嘗試過沒法成功,至於如何getshell(大馬),能夠參考個人上一篇文章。

https://www.cnblogs.com/fox-yu/p/9134848.html

 

笨鳥先飛早入林,笨人勤學早成材。

轉載請註明出處:
撰寫人:fox-yu  http://www.cnblogs.com/fox-yu/
相關文章
相關標籤/搜索