当前位置: 主页 > 日志 > 网络安全 >

qcms_php_1.3Free SQL注入漏洞

// by redice 2010.10.17
// redice@163.com
// http://www.redicecn.com

粗略看了一下qcms_php_1.3Free的代码,发现程序基本上没有过滤任何输入数据。

比如新闻显示页面view.php第26行或31行:

echo view_temp($_GET['id']);

/inc/news.php 92行news_view函数如下:

function news_view($id)//显示单一新闻
{
   global $bqz;
   $exec="select ".$bqz."news.*,".$bqz."category.* from ".$bqz."news,".$bqz."category where ".$bqz."news.cid=".$bqz."category.cid and newsid=".$id."";

   $result=mysql_query($exec);
    return $result;
}

很明显这里没有对新闻id做任何过滤。

默认数据库前缀:qcms_  (安装时可能被修改)


系统后台地址/admin/index.php
默认验证码:qcms(安装时可能被修改)
默认管理员及密码:admin admin


进入后台,添加文章,上传附件可以成功上传名称形如"redice.php;test.jpg'的图片木马,利用iis6.0的路径解析bug,该图片木马可以成功运行。

上传漏洞分析:

/admin/upload.php 30行

//获取文件后缀名函数 
function fileext($filename) 

return substr(strrchr($filename, '.'), 1); 


// 这里判断上传文件后缀名是以最后一个点之后为准,"redice.php;test.jpg'为jpg,符合要求。


//判断文件类型 
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type)) 

$text=implode(",",$type); 
echo $lang["upload_allow"].$text,"<br>"; 

else
{
 $filename=explode(".",$_FILES['file']['name']);  
 do 
  { 
        
// 这里产生的随机文件名只替换了上传文件名第一个点之前的字符串,"redice.php;test.jpg'替换后为"随机数.php;test.jpg"


     $filename[0]=random(10); //设置随机数长度 
     $name=implode(".",$filename); 
     $uploadfile=$uploaddir.$name; 
  } 
  while(file_exists($uploadfile)); 

......省略


测试截图如下:







[日志信息]

该日志于 2010-10-17 19:33 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “qcms_php_1.3Free SQL注入漏洞” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部