压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

Discuz!X ≤3.4 任意文件刪除漏洞分析

作者:知道創(chuàng)宇404實(shí)驗(yàn)室

0x01 簡(jiǎn)述

Discuz!X社區(qū)軟件,是一個(gè)采用 PHP 和 MySQL 等其他多種數(shù)據(jù)庫構(gòu)建的性能優(yōu)異、功能全面、安全穩(wěn)定的社區(qū)論壇平臺(tái)。

2017年9月29日,Discuz!修復(fù)了一個(gè)安全問題用于加強(qiáng)安全性,這個(gè)漏洞會(huì)導(dǎo)致前臺(tái)用戶可以導(dǎo)致任意刪除文件漏洞。

2017年9月29日,知道創(chuàng)宇404 實(shí)驗(yàn)室開始應(yīng)急,經(jīng)過知道創(chuàng)宇404實(shí)驗(yàn)室分析確認(rèn),該漏洞于2014年6月被提交到 Wooyun漏洞平臺(tái),Seebug漏洞平臺(tái)收錄了該漏洞,漏洞編號(hào) ssvid-93588。該漏洞通過配置屬性值,導(dǎo)致任意文件刪除。

經(jīng)過分析確認(rèn),原有的利用方式已經(jīng)被修復(fù),添加了對(duì)屬性的 formtype 判斷,但修復(fù)方式不完全導(dǎo)致可以繞過,通過模擬文件上傳可以進(jìn)入其他 unlink 條件,實(shí)現(xiàn)任意文件刪除漏洞。

0x02 復(fù)現(xiàn)

登陸DZ前臺(tái)賬戶并在當(dāng)前目錄下新建 test.txt 用于測(cè)試

請(qǐng)求

home.php?mod=spacecp&ac=profile&op=base
POST birthprovince=../../../test.txt&profilesubmit=1&formhash=b644603b
其中formhash為用戶hash

修改成功之后出生地就會(huì)變?yōu)?./../../test.txt

構(gòu)造請(qǐng)求向home.php?mod=spacecp&ac=profile&op=base上傳文件(普通圖片即可)

請(qǐng)求后文件被刪除

0x03 漏洞分析

Discuz!X 的碼云已經(jīng)更新修復(fù)了該漏洞

https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

核心問題在upload/source/include/spacecp/spacecp_profile.php

跟入代碼70行

if(submitcheck('profilesubmit')) {

當(dāng)提交 profilesubmit 時(shí)進(jìn)入判斷,跟入177行

我們發(fā)現(xiàn)如果滿足配置文件中某個(gè) formtype 的類型為 file,我們就可以進(jìn)入判斷邏輯,這里我們嘗試把配置輸出出來看看

我們發(fā)現(xiàn)formtype字段和條件不符,這里代碼的邏輯已經(jīng)走不進(jìn)去了

我們接著看這次修復(fù)的改動(dòng),可以發(fā)現(xiàn)228行再次引入語句 unlink

@unlink(getglobal('setting/attachdir').'./profile/'.$space[$key]);

回溯進(jìn)入條件

當(dāng)上傳文件并上傳成功,即可進(jìn)入 unlink 語句

然后回溯變量$space[$key],不難發(fā)現(xiàn)這就是用戶的個(gè)人設(shè)置。

只要找到一個(gè)可以控制的變量即可,這里選擇了 birthprovince。

在設(shè)置頁面直接提交就可以繞過字段內(nèi)容的限制了。

成功實(shí)現(xiàn)了任意文件刪除

0x04 說在最后

在更新了代碼改動(dòng)之后,通過跟蹤漏洞點(diǎn)邏輯,我們逐漸發(fā)現(xiàn),該漏洞點(diǎn)在 2014 年被白帽子提交到 Wooyun平臺(tái)上,漏洞編號(hào)wooyun-2014-065513。

由于DZ的舊版代碼更新流程不完整,已經(jīng)沒辦法找到對(duì)應(yīng)的補(bǔ)丁了,回溯到 2013 年的 DZ3 版本中,我們發(fā)現(xiàn)了舊的漏洞代碼

在白帽子提出漏洞,可以通過設(shè)置個(gè)人設(shè)置來控制本來不可控制的變量,并提出了其中一種利用方式。

廠商僅對(duì)于白帽子的攻擊 poc 進(jìn)行了相應(yīng)的修復(fù),導(dǎo)致幾年后漏洞再次爆出,dz 才徹底刪除了這部分代碼…

期間廠商對(duì)于安全問題的解決態(tài)度值得反思…

0x05 Reference

  • [1] Discuz!官網(wǎng)
    http://www.discuz.net
  • [2] Discuz!更新補(bǔ)丁
    https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574
  • [3] Seebug漏洞平臺(tái)收錄地址
    https://www.seebug.org/vuldb/ssvid-93588

上一篇:新型 Android 銀行木馬“MoqHao”利用社交網(wǎng)絡(luò)隱藏 C&C 服務(wù)器

下一篇:TP-LINK 遠(yuǎn)程代碼執(zhí)行漏洞 CVE-2017-13772 趣談