97久久国产亚洲精品超碰热,成人又色又爽的免费网站,色偷偷女人的天堂a,男女高潮喷水在线观看,国内精品一线二线三线区别在哪里

返回列表 發(fā)帖
查看: 9805|回復(fù): 1

[已處理] Discuz!X.3.4 ML任意代碼執(zhí)行漏洞修復(fù)(discuz多國(guó)語言版)

17

主題

590

回帖

1854

積分

應(yīng)用開發(fā)者

貢獻(xiàn)
66 點(diǎn)
金幣
902 個(gè)
QQ
樓主
發(fā)表于 2019-7-24 15:26:44 | 只看樓主 |只看大圖 |倒序?yàn)g覽 |閱讀模式
BUG反饋
程序版本: X3.4
瀏覽器: 其他(請(qǐng)?jiān)谔又性敿?xì)說明瀏覽器) 
BUG地址: 隱藏內(nèi)容
BUG截圖: -
測(cè)試用戶名: 隱藏內(nèi)容
測(cè)試密碼: 隱藏內(nèi)容


0X1 漏洞描述

2019年7月11日,網(wǎng)絡(luò)上出現(xiàn)了一個(gè)Discuz!ML遠(yuǎn)程代碼執(zhí)行漏洞的PoC,研究員驗(yàn)證對(duì)discuz x3.4進(jìn)行全面的網(wǎng)站滲透測(cè)試的時(shí)候,發(fā)現(xiàn)discuz多國(guó)語言版存在遠(yuǎn)程代碼執(zhí)行漏洞,該漏洞可導(dǎo)致論壇被直接上傳webshell,直接遠(yuǎn)程獲取管理員權(quán)限,linux服務(wù)器可以直接執(zhí)行系統(tǒng)命令,危害性較大,關(guān)于該discuz漏洞的詳情,我們來詳細(xì)的分析看下。攻擊者能夠利用該漏洞在請(qǐng)求流量的cookie字段中(language參數(shù))插入任意代碼,執(zhí)行任意代碼,從而實(shí)現(xiàn)完全遠(yuǎn)程接管整個(gè)服務(wù)器的目的,該漏洞利用方式簡(jiǎn)單,危害性較大。漏洞影響范圍包括如下版本。
Discuz ML! V3.X存在代碼注入漏洞,
攻擊者通過精心構(gòu)建的請(qǐng)求報(bào)文可以直接執(zhí)行惡意的PHP代碼,
進(jìn)一步可獲取整個(gè)網(wǎng)站的服務(wù)器權(quán)限。

漏洞影響版本:

Discuz!ML v.3.4,
Discuz!ML v.3.2,
Discuz!ML v.3.3 codersclub.org的產(chǎn)品

Discuz!ML是一個(gè)由CodersClub.org創(chuàng)建的多語言,集成,功能齊全的開源網(wǎng)絡(luò)平臺(tái),

用于構(gòu)建像“社交網(wǎng)絡(luò)”這樣的互聯(lián)網(wǎng)社區(qū)。使用這些軟件創(chuàng)建的數(shù)百個(gè)論壇包括v3.2,v3.3,v3.4。
1.3如何區(qū)分Discuz!ML網(wǎng)站

通常,這些站點(diǎn)包含以下類型的頁腳或站點(diǎn)的左下側(cè)。

Discuz! ML v.3.4、Discuz! ML v.3.3、Discuz! ML v.3.2
源碼下載鏈接:https://bitbucket.org/vot/discuz.ml/downloads/


0X2 漏洞分析!

根據(jù)公告定位文件source/module/portal/portal_index.php第32行


查看問題函數(shù)上方查看定義函數(shù)以及關(guān)聯(lián)文件的位置,可以看到template函數(shù)在/source/function/function_core.php中,繼續(xù)跟進(jìn)



問題代碼如下所示。

$cachefile = './data/template/'.DISCUZ_LANG.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';

程序?qū)⒕彺嫖募懺诹?data/template/目錄下,文件名由DISCUZ_LANG等多個(gè)變量組成,問題就出在這兒了,看看DISCUZ_LANG的值是哪兒獲取來的:



可以看到從程序全部變量$_G[‘config’][‘output’][‘language’]中獲取了該值。繼續(xù)跟進(jìn)看看該值可以定位到/source/class/discuz/discuz_application.php:



在304行,系統(tǒng)通過Cookie獲取了語言的值,并在341行定義了前面要找的DISCUZ_LANG,值為Cookie中獲取到的lng??梢钥吹秸麄€(gè)過程沒有任何的過濾。整個(gè)流程即就是:外部參數(shù)‘ lng。可以看到整個(gè)過程沒有任何的過濾。整個(gè)流程即就是:外部參數(shù)`lng??梢钥吹秸麄€(gè)過程沒有任何的過濾。整個(gè)流程即就是:外部參數(shù)‘lng(即language語言)可控,導(dǎo)致template函數(shù)生成的臨時(shí)模板文件名可操縱,插入自己的代碼,最終include_once`包含一下最終導(dǎo)致了代碼注入。那這里可以搜一下其他的可利用點(diǎn),全局查找:


大約有60多個(gè)點(diǎn)可以用的。

0X3 漏洞利用

訪問論壇主頁,在Cookie的language字段值后面拼接php代碼:

  1. ‘.phpinfo().’
復(fù)制代碼




執(zhí)行命令獲得管理員權(quán)限:


0X4 漏洞修復(fù)
對(duì)discuz的版本進(jìn)行全面的升級(jí),在language參數(shù)值中進(jìn)行全面的安全過濾,限制逗號(hào),以及閉合語句的執(zhí)行,還有\(zhòng)斜杠都一些特殊惡意代碼進(jìn)行攔截,必要的話對(duì)其進(jìn)行轉(zhuǎn)義,如果對(duì)代碼不是太熟悉的話,也可以找專業(yè)的網(wǎng)站安全公司來進(jìn)行漏洞修復(fù),國(guó)內(nèi)也就SINE安全公司,綠盟,啟明星辰比較專業(yè)。再一個(gè)對(duì)discuz目錄的權(quán)限進(jìn)行安全分配,限制data目錄的腳本執(zhí)行權(quán)限,防止PHP腳本的運(yùn)行,最重要的就是做好網(wǎng)站的安全防護(hù)。
打開 source/class/discuz/discuz_application.php
找到
  1. if(!$lng) {
復(fù)制代碼

修改為
  1. if(!preg_match("#^[\w]+$#i", $lng)){
  2.         $lng = '';
  3. }
  4. if(!$lng) {
復(fù)制代碼


原文地址:http://esoln.net/esoln/blog/2019/06/14/discuzml-v-3-x-code-injection-vulnerability/
我知道答案 回答被采納將會(huì)獲得1 貢獻(xiàn) 已有1人回答

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻(xiàn)
23 點(diǎn)
金幣
351 個(gè)
沙發(fā)
發(fā)表于 2019-7-24 20:41:04 | 只看Ta
謝謝分享

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2025-10-16 14:41 , Processed in 0.058690 second(s), 14 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表