Catalog
1. 漏洞描述2. 漏洞触发条件3. 漏洞影响范围4. 漏洞代码分析5. 防御方法6. 攻防思考
1. 漏洞描述
该漏洞存在于/member/special.php文件下,由于未对变量进行正确初始化,并在SQL查询中带入这个变量,导致黑客可以通过POST请求注入特殊构造的HTTP请求,通过为初始化变量进行SQL注入攻击
Relevant Link:
http://www.wooyun.org/bugs/wooyun-2015-0104959
1. 登录2. 进入show_BBSiframe3. 发布一个专题4. 进入show_BBSiframe
测试版本:V7.0
\member\special.php
...if($type=='myatc'||$type=='all'){ $detail=explode(",",$rsdb[tids]); $show=''; if($page<1){ $page=1; } $rows=15; $min=($page-1)*$rows; if($keywords){ //搜索时 $SQL=" BINARY subject LIKE '%$keywords%' "; }elseif($ismy){ $SQL=" authorid='$lfjuid' "; }else{ $SQL=' 1 '; } if($fid>0){ $SQL.=" AND fid='$fid' "; } //$TB_pre未在全局变量中初始化带入查询导致注入 $showpage=getpage("{$TB_pre}threads","WHERE $SQL","",$rows); //$TB_pre未在全局变量中初始化带入查询导致注入 $query = $db->query("SELECT * FROM {$TB_pre}threads WHERE $SQL ORDER BY tid DESC LIMIT $min,$rows"); if(ereg("^pwbbs",$webdb[passport_type])){ while($rs = $db->fetch_array($query)){ $add=" "; if(!in_array($rs[tid],$detail)){ $add="添加"; } $show.=" {$rs[tid]} $rs[subject] $add "; } }...
\member\special.php
...//论坛贴子elseif($job=="show_BBSiframe"){ //判断系统是否存在dzbbs或pwbbs系统变量,防御未初始化变量注入 if(!ereg("^dzbbs",$webdb[passport_type])&&!ereg("^pwbbs",$webdb[passport_type])){ showerr('你没有整合对应版本的论坛!'); } $rsdb=$db->get_one("SELECT * FROM {$pre}special WHERE uid='$lfjuid' AND id='$id'"); if(!$rsdb){ showerr("资料不存在",1); } ... if($type=='myatc'||$type=='all') { ... $showpage=getpage("{$TB_pre}threads","WHERE $SQL","",$rows); $query = $db->query("SELECT * FROM {$TB_pre}threads WHERE $SQL ORDER BY tid DESC LIMIT $min,$rows");...
Copyright (c) 2014 LittleHann All rights reserved