// 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));
......省略
测试截图如下:
qcms_php_1.3Free SQL注入漏洞
[日志分享]
[日志信息]
该日志于 2010-10-17 19:33 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “qcms_php_1.3Free SQL注入漏洞” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!! (尊重他人劳动,你我共同努力)
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢