2014-10-11: 细节已通知厂商并且等待厂商处理中 2014-10-16: 厂商已经确认,细节仅向厂商公开 2014-10-19: 细节向第三方安全合作伙伴开放 2014-12-10: 细节向核心白帽子及相关领域专家公开 2014-12-20: 细节向普通白帽子公开 2014-12-30: 细节向实习白帽子公开 2015-01-09: 细节向公众公开
GV32-CMS最新版V5.6.4前台getshell
#1 文件application\user\upload.php 11-96行
//文件上传uploadfile();function uploadfile(){ $configUp=array(); $configUp['type'] = array("flash","img"); //上传允许type值 $configUp['img'] = array("jpg","bmp","gif","png"); //img允许后缀 $configUp['flash'] = array("flv","swf"); //flash允许后缀 $configUp['office'] = array("doc","docx","docm","dotx","dotm", "xls","xlsx","xlsm","xltm","xlsb","xlam","csv","xlw","wk4","wk3","wk1","wks","dbf", "ppt","pptx","pptm","ppsx","potx","potm","ppam"); //office允许后缀 if(MAX_UPSIZE != '') { $configUp['flash_size'] = MAX_UPSIZE; //上传flash大小上限 单位:KB $configUp['img_size'] = MAX_UPSIZE; //上传img大小上限 单位:KB }else{ $configUp['flash_size'] = 1000; //上传flash大小上限 单位:KB $configUp['img_size'] = 2000; //上传img大小上限 单位:KB } $configUp['message'] = "上传成功"; //上传成功后显示的消息,若为空则不显示 $configUp['name'] = mktime(); //上传后的文件命名规则 这里以unix时间戳来命名 if(BASE_WEBURL!='') { $configUp['flash_dir'] = BASE_WEBURL."/uploads/flash"; //上传flash文件地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" $configUp['img_dir'] = BASE_WEBURL."/uploads/img"; //上传img文件地址 采用绝对地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" }else{ $configUp['flash_dir'] = "/uploads/flash"; //上传flash文件地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" $configUp['img_dir'] = "/uploads/img"; //上传img文件地址 采用绝对地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/" } if(IMG_URL!='') { $configUp['site_url'] = IMG_URL; //网站的网址 这与图片上传后的地址有关 最后不加"/" 可留空 }else{ $configUp['site_url']=""; //网站的网址 这与图片上传后的地址有关 最后不加"/" 可留空 } //判断是否是非法调用 if(empty($_GET['CKEditorFuncNum'])) mkhtml(1,"","错误的功能调用请求"); $fn=$_GET['CKEditorFuncNum']; if(is_uploaded_file($_FILES['upload']['tmp_name'])) { //判断上传文件是否允许 $filearr=pathinfo($_FILES['upload']['name']); $filetype=$filearr["extension"]; if(!in_array($filetype,$configUp['img'])) mkhtml($fn,"","错误的文件类型!"); //判断文件大小是否符合要求 if($_FILES['upload']['size'] > $configUp["img_size"]*1024) mkhtml($fn,"","上传的文件不能超过".$configUp["img_size"]."KB!"); $file_abso=$configUp["img_dir"]."/".$configUp['name'].".".$filetype; $file_host=$_SERVER['DOCUMENT_ROOT'].$file_abso; if(move_uploaded_file($_FILES['upload']['tmp_name'],$file_host)) { mkhtml($fn,$file_abso,$configUp['message']); }else { mkhtml($fn,"","文件上传失败,请检查上传目录设置和目录读写权限"); } }}//输出js调用function mkhtml($fn,$fileurl,$message){ echo $str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$fn.', \''.$fileurl.'\', \''.$message.'\');</script>'; exit($str);}?>
if(!in_array($filetype,$configUp['img'])) 判断了文件类型数组$configUp['img'] = array("jpg","bmp","gif","png"); 然后js调用输出 很好突破直接抓包修改格式上传就ok#2 利用方式#1 首先注册一个账号#2 首页 > 用户中心 > 基本信息 头像上传文件 抓包改包上传google关键词:Powered by GV32.COM 找到约 19,300 条结果 (用时 0.29 秒) 有一定的用户量 随便找一个站测试下#http://engleeagro.com/ 注册个账号,然后头像上传 抓包改包上传成功:
加强验证
危害等级:高
漏洞Rank:13
确认时间:2014-10-16 09:06
暂无
貌似厉害哦!
你敢不敢不走小厂商,我勒个去