upload-labs关卡13(基于白名单的0x00截断绕过)通关思路


前言

此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾上一关知识点

上一关利用的是%00截断绕过,通过源代码是过滤文件名后把文件名拼接到文件路径的思路,在文件路径进行截断上传,然后成功上传后门。上一关是get请求的文件路径获取,这一关是post请求。

二、靶场第十三关通关思路

  • 1、看源代码
  • 2、bp进行0x00截断绕过
  • 3、蚁剑连接

1、看源代码

$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;

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

发现与上一关不同的是get请求变成post请求,也就是说我们%00截断不会通过url自动解码了,得我们手动解码。

  $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

2、bp进行0x00截断绕过

这里我上传带有木马的jpg文件,然后通过截断上传php文件,有两种方法。
第一种方法,随便输入一个字符这里我输空格,因为好辨认,然后通过bp功能在十六进制改为00,也就是0x00
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二种方法是直接把%00解码,把upload/23.php%00的%00手动解码。
在这里插入图片描述
在这里插入图片描述
提交即可。

3、蚁剑连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结

这一关和上一关差不多,都是00截断。只是这一关路径传参是post请求,若用%00得手动url解码,或者直接任意用一个字符占位然后修改十六进制值为00。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名小卒且不会安全的zzyyhh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值