Upload-labs Pass-11 Pass-12 截断漏洞

Pass-11 %00截断

0x01 过程

在这里插入图片描述
直接传php得到提示,又是白名单了,扔到burpsutie里面看。
在这里插入图片描述
发现了好东西,保存的路径出现在了url中,可以直接采用%00截断。
在这里插入图片描述
改好了文件后缀名和URL中的路径后,仍然提示上传出错,这里应该就是php版本的问题了。目录的版本是5.3.4,而00截断在5.3.4以后就修复了,同时magic_quotes_gpc需要为Off状态,所以我手动的将5.3.4回退到5.2.17了。不得不说,真的麻烦,花了我几个小时,再试一次。
在这里插入图片描述
这次成了,解析一下,注意,00后面是被截断的,不要加在后面了。
在这里插入图片描述
太难了,太难了,今天早上5点才睡阿,还特么的没搞好,早上把phpstudy的包拿出来改一下才好。。。

0x02 函数分析
$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = '上传出错!';
        }
    } else{
        $msg = "只允许上传.jpg|.png|.gif类型文件!";
    }
}

可以看到这里增加了sava_path参数,给了我们截断绕过的机会。


Pass-12 0x00截断

0x01 过程

这题和上一题基本一样,只是save_path不在URL中了,而在POST数据里面,由于POST里面的数据不会被url自动解码,所以要稍微改变一下,首先,先改好路径,然后再路径后面加上一个字符,什么字符都可以,这里我为了方便用+号。
在这里插入图片描述
然后再点击Hex,找到对应+的十六进制数据2b
在这里插入图片描述
直接双击2b改为00,再切回到RAW,查看报文。
在这里插入图片描述
直接GO,查看返回结果。
在这里插入图片描述
访问,解析成功。
在这里插入图片描述
因为是十六进制所以这种截断叫做是0x00截断,其实是%00截断最终被url解码还是会变成0x00的。在url%00表示ascll码中的0,而ascii0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。这是一样的道理,所以这里还有另外一种做法。
在这里插入图片描述
直接在后面加上%00然后选中,右键如下图进行url解码即可,或者直接按ctrl+shfit+u
在这里插入图片描述
效果会是一样的。
在这里插入图片描述
源码不用分析什么,就是将GET换成了POST而已。

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;	//换成了POST

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上传失败";
        }
    } else {
        $msg = "只允许上传.jpg|.png|.gif类型文件!";
    }
}

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值