[公开漏洞]Taocms的Sql注射一枚可以无视GPC

来源:WooYun 浏览:870次 时间:2014-06-13
做网站找雨过天晴工作室
Taocms的Sql注射一枚可以无视GPC 相关厂商: taocms开源 漏洞作者:′ 雨。 提交时间:2014-03-15 12:50 公开时间:2014-06-13 12:50 漏洞类型:SQL注射漏洞 危害等级:高 自评Rank:20 漏洞状态: 厂商已经确认 漏洞来源:http://www.wooyun.org Tags标签: 无 漏洞详情 披露状态:

2014-03-15:细节已通知厂商并且等待厂商处理中
2014-03-15:厂商已经确认,细节仅向厂商公开
2014-03-18:细节向第三方安全合作伙伴开放
2014-03-25:细节向核心白帽子及相关领域专家公开
2014-04-04:细节向普通白帽子公开
2014-04-24:细节向实习白帽子公开
2014-06-13:细节向公众公开

简要描述:

过滤不严。

详细说明:

在index.php中



include(SYS_ROOT.INC.'common.php');
$path=$_SERVER['PATH_INFO'].($_SERVER['QUERY_STRING']?'?'.str_replace('?','',$_SERVER['QUERY_STRING']):'');



if(substr($path, 0,1)=='/'){
$path=substr($path,1);
}

$ctrl=isset($_GET['action'])?$_GET['action']:'run';
if(isset($_GET['createprocess']))
{
Index::createhtml(isset($_GET['id'])?$_GET['id']:0,$_GET['cat'],$_GET['single']);
}else{
Index::$ctrl($path);
}



path是由query_string来的 所以不受gpc啦。



$ctrl=isset($_GET['action'])?$_GET['action']:'run';
if(isset($_GET['createprocess']))
{
Index::createhtml(isset($_GET['id'])?$_GET['id']:0,$_GET['cat'],$_GET['single']);
}else{
Index::$ctrl($path);
}
?>





看这里 我们可以自己来控制要进的函数



static public function getatlbyid($id){
if(!$id)return null;
self::$_db=new Dbclass(SYS_ROOT.DB_NAME);
if(MEMCACHE){
self::$_mem=new Memcached(MEMCACHE);
if(!$atl=self::$_mem->get($id.'_cms')){
$atl=self::$_db->get_one(TB."cms",'status=1 and id='.$id,"*",1);;
self::$_mem->set($id.'_cms',$atl);
}
}else{
$atl=self::$_db->get_one(TB."cms",'status=1 and id='.$id,"*",1);
}
return $atl;
}





那么就找这个函数来注入把。

漏洞证明:

)V4)FBGUA~G8_C8G03A4TQA.jpg





有图有真相。

修复方案:

过滤。

版权声明:转载请注明来源 ′ 雨。@乌云 漏洞回应 厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-03-15 21:42

厂商回复:

十分感谢您对taocms开源系统的关注:)

最新状态:

暂无