黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 文章正文
[推荐]浅析BlogEz安全性
        ★★★★★
浅析BlogEz安全性
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-7-26


search.php是实现搜索功能的文件,但是这个文件在处理用户输入的数据时,没有进行任何过滤就操作了数据库。其漏洞代码如下:

以下是引用片段:
$key=trim($_REQUEST['key']); '直接取得数据,没有经过正则表达式的过滤
$type=trim($_REQUEST['type']);
$page=intval($_GET['page'])?intval($_GET['page']):1;
$psize = $setting['searchnums']; '每页显示记录数
$start=($page-1)*$psize;
//echo $type,$key;
if($type=="title"){
$sql="Select id,sid,posticon,title,top,author,visits,addtime,weather FROM
".$table_prefix."blog Where title LIKE '%$key%' orDER BY id DESC LIMIT $start,$psize";
$total_sql="Select id FROM ".$table_prefix."blog Where title LIKE '%$key%'";
} '$key没有经过任何的过滤就进行数据库查询,下面也是如此
elseif($type=="content") {
$sql="Select id,sid,posticon,title,top,author,visits,addtime,weather FROM
".$table_prefix."blog Where content LIKE '%$key%' orDER BY id DESC LIMIT $start,$psize";
$total_sql="Select id FROM ".$table_prefix."blog Where content LIKE '%$key%'";}
elseif($type=="comment") {
$sql="Select blogid,content FROM comment Where content LIKE '%$key%' orDER BY
id DESC LIMIT $start,$psize";}
elseif($type=="gbook") {
$sql="Select id,title FROM guestbook Where content LIKE '%$key%' orDER BY id DESC LIMIT $start,$psize";}
 
同时,search.php也没有对输入的长度进行限制,其代码如下:
以下是引用片段:









 

所以,以上代码处我们就可以用来查询网站管理员的密码,可以用类似这样的代码来查询:关键字%' and (select top 1 asc(mid 字段,1,1)) from 用户名=ASICC值 and '%。比如我们随便输入BLOG%' and (select top 1 asc(mid username,1,1)) from admin=97 and '%,那么执行后语句就变成了:Select id,sid,posticon,title,top,author,visits,addtime,weather From ".$table_prefix."blog Where title Like 'BLOG%' and (Select top 1 asc(mid username,1,1)) From admin=97 and '%' orDER BY id DESC LIMIT $start,$psize。

如果这里存在username字段及admin用户,那么就可以得到admin的密码;但是这里没有usernamer字段,所以数据库出现错误,泄露了很多敏感信息,如图5所示。这里存在的注入漏洞和我们平时在URL地址栏使用的差不多,利用它同样可以得到管理员的密码,只是现在它出现在搜索栏内而已,都是换汤不换药,所以这里我就不详细讲解了。

  更重要的是,这个系统的后台的安全性同样存在很大问题,很多地方都是直接进行数据库操作的,比如admin.php文件中的一段代码:

以下是引用片段:
$id=$_REQUEST['id'];
$sql="Select
id,username,password,userid,name,img,sex,job,love,age,email,qq,homepage,user1,user2,hidden
FROM ".$table_prefix."user,".$table_prefix."aboutus Where id=$id AND userid=id";
$rs=mysql_query($sql);
$num=mysql_num_rows($rs);
 
  看出来了吗?这段代码就是经典的PHP注入代码,不过我们都进入后台了,注入漏洞对我们也没多少的用处。像这样的代码在后台存在很多,由于这套系统支持文件和图片两种上传方式,并且支持数据库的备份,所以我们可以先把PHP木马的格式改掉,然后利用数据库备份来得到Webshell。

不过总的来说,虽然存在上面的诸多问题,但这个系统安全性还是不错的。可就是由于作者对脚本方面的漏洞还没有一个非常清楚和全面的了解,所以导致出现了一些安全问题,而且挺严重的,利用这些漏洞不仅可以用查询数据库中管理员的密码,还可以挂马,最后还可以得到Webshell,所以对网站是一个极大的威胁,希望使用这个系统的站长注意了,如果对PHP语言很熟悉的话,最好自己打上补丁。

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886