記錄thinkphp5.0和5.1的getshell漏洞

下面由thinkphp框架教程欄目給大家介紹thinkphp5.0和5.1的getshell漏洞,希望對需要的朋友有所幫助!

記錄thinkphp5.0和5.1的getshell漏洞

之前網(wǎng)站被提權(quán)了,那時候網(wǎng)站才建沒幾天,應該不會有人故意為之,可能是批量掃描getshell的,為了方便我找的是開源系統(tǒng)thinkcmf建了博客,看著挺不錯的,因為thinkcmf用的是thinkphp5.0的框架開發(fā)的,我到thinkphp.cn上去看了一下,原來有一個提權(quán)漏洞。

libaray/think/app.php文件中模塊,控制器,方法使用的是/來區(qū)分開來。

然后并沒有對控制器進行過濾,導致可以構(gòu)造執(zhí)行各種函數(shù)

記錄thinkphp5.0和5.1的getshell漏洞

記錄thinkphp5.0和5.1的getshell漏洞

立即學習PHP免費學習筆記(深入)”;

記錄thinkphp5.0和5.1的getshell漏洞

記錄thinkphp5.0和5.1的getshell漏洞

我在本地建一個虛擬主機測試http://cmf.com

構(gòu)造一個url訪問,可以直接打印出phpinfo:

http://cmf.com/index.php?s=portal/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

記錄thinkphp5.0和5.1的getshell漏洞

然后你可以把phpinfo換成其他函數(shù),比如使用file_put_content函數(shù)創(chuàng)建各種大馬小馬文件。

TP官方的修復5.0方法是:

在thinkApp類的module方法的獲取控制器的代碼后面加上

if?(!preg_match('/^[A-Za-z](w|.)*$/',?$controller))?{ ????throw?new?HttpException(404,?'controller?not?exists:'?.?$controller); }

我用的thinkcmf的版本是:ThinkCMF 5.0.180901

然后我看了一下thinkcmf的官網(wǎng)已經(jīng)更新到5.0.190111,最新版也更新了tp5.0到最新版本5.0.24了包含了安全更新,當然也沒有這個提權(quán)漏洞了。

?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊12 分享