Bluecms 0day
唉,群里一个朋友发了一个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文件,点确认修改,成功后,直接在照片上右击查看地址就行了..一句话SHELL上传成功!
分析完毕,嘿嘿,希望大家多交流,这些东西发出来只是想多认识些朋友,一起讨论技术,开设群也是这样,由于只是普通群,只能有100人,今天清理了下从未说话的人,竟被人说我在装B乱T人,郁闷,开群就是为了交流,不说话一直占位有何用,想进步的话,孤高之路不可走!
如果你进群只是为了从别人那得到别人的讨论成果,不知道付出或只是加进来潜水的,那还是不加的好...
Bluecms 0day:等您坐沙发呢!