background image

漏洞说明:历经数年开发与完善的 PHP168

整站系统 是国内最早的多功能模块化网站管

理软件系统;不仅适合于建设一般的企业、政府、学校、个人等小型网站,同时也适合于建
设地区门户、行业门户、收费网站等大中型网站,80sec 在其产品中发现了一个严重的 SQL
注射漏洞,可能被恶意用户查询数据库的敏感信息,如管理员密码,加密 key 等等,从
而控制整个网站。
漏洞厂商:http://www.php168.com
漏洞解析:在系统的 jsarticle.php 中,使用了 urldecode 用来解码用户提交的数据,但是在
使用该函数之后并没有做进一步的有效性验证,从而导致精心构造的数据可以饶过系统
的过滤以及 php 的 Magic Quote 保护,漏洞部分代码如下:

elseif($type=='like')
{

 $SQL.=" AND aid!='$id' ";

if(!$keyword)
{
extract($db->get_one("SELECT   keywords   AS   keyword   FROM   {$pre}article   WHERE 
aid='$id'"));
}

if($keyword){
$SQL.=" AND ( ";
$keyword=urldecode($keyword);
$detail=explode(" ",$keyword);
unset($detail2);
foreach( $detail AS $key=>$value){
$detail2[]=” BINARY title LIKE ‘%$value%’ “;
}
$str=implode(” OR “,$detail2);
$SQL.=” $str ) “;
}else{
$SQL.=” AND 0 “;
}

$ORDER=’ list ‘;
}

if(!$webdb[viewNoPassArticle]){
$SQL.=’ AND yz=1 ‘;
}

$SQL=” WHERE $SQL ORDER BY $ORDER DESC LIMIT $rows”;