新聞中心
本文主要介紹了,由于心情墻插件變量初始化和過濾不嚴所導致的SQL注入式攻擊及跨站腳本漏洞。雖然心情墻插件所導致的SQL注入攻擊在現(xiàn)在來看比較雞肋,因為SQL注入攻擊所要求的GPC為off的情況已經(jīng)很少出現(xiàn)了,但是由于xss是持久型的,只要管理員打開此應用就會立即出發(fā)。

成都創(chuàng)新互聯(lián)公司2013年成立,先為勉縣等服務建站,勉縣等地企業(yè),進行企業(yè)商務咨詢服務。為勉縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
詳細說明:
由Discuz!認證的(http://addons.discuz.com/workroom.php)第三方開發(fā)團隊“潮流少年工作室 Teen Studio”出品的心情墻插件(http://www.discuz.net/forum.php?mod=viewthread&tid=1632898),因變量未初始化及過濾不嚴導致SQL注入及跨站腳本漏洞。
moodwall.inc.php
SQL注入,除下面代碼這一處外,本文件還有很多處這樣的或是$_POST得到后直接用的情況。慘不忍睹。
elseif($action == 'edit_mood' && moodid) {
//moodid未初始化,直接代入sql查詢
$check = $db->result_first("SELECT * FROM {$tablepre}moodwall WHERE id='$moodid' AND uid='$discuz_uid'");
if(!$check || !$moodid) {
showmessage('moodwall:moodwall_inc_php_2', 'plugin.php?id=moodwall&action=user_mood');
}
$sql = "SELECT * FROM {$tablepre}moodwall WHERE id='$moodid'";
$query = $db->query($sql);
$moodlist_edit = array();
while($mood_edit = $db->fetch_array($query)) {
$moodlist_edit[] = $mood_edit;
}
XSS
$uid=$_POST[uid];
$username=$_POST[username];
$bgpic=$_POST[bgpic];
$mood=$_POST[mood];
$message=$_POST[message];
$dateline=time();
//$_POST得到數(shù)據(jù)直接入庫,前端出庫代碼也沒有做過濾,這里就不貼了。
$db->query("INSERT INTO {$tablepre}moodwall (uid,username, bgpic, mood, message, dateline) VALUES ('$uid', '$username', '$bgpic', '$mood', '$message', '$dateline')");
漏洞證明:
隨意找一個安裝心情墻插件應用的網(wǎng)站:
/plugin.php?id=moodwall&action=edit_mood&moodid=2'
發(fā)表心情處直接插入html代碼
">
修復方案:
只能夠反復的過濾和初始化,沒有什么好的修復方案。
強烈建議Discuz!團隊對第三方的應用做嚴格的審查后再在自己的官方論壇上發(fā)布。Discuz!敗在插件上也不是一次兩次了
文章名稱:心情墻插件SQL注入及XSS漏洞分析和修復
本文路徑:http://m.fisionsoft.com.cn/article/cdjccic.html


咨詢
建站咨詢
