upload-labs关卡12(基于白名单的%00截断绕过)通关思路

文章目录


前言

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


一、靶场需要了解的前置知识

1、%00截断

%00截断常在url中get请求使用,在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。所以一般文件上传绕过%00会在路径上使用。

http://xxx.com?filename=test.php.txt

这样服务器读取%00的时候就会中断读取,造成只读取了test.php。

2、0x00截断

0x开头表示16进制,0在十六进制中是00, 0x00就是%00解码成的16进制。其实和%00的原理没有太大区别,只是使用的方式不一样,这个0x00是手动修改为16进制变成的,通常通过bp修改,其实%00解码就是0x00,0x00通常在post请求使用。

3、00截断的使用条件

1、php版本小于5.3.29

2、magic_quotes_gpc = Off

去php.ini修改就行

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

  • 1、看源代码
  • 2、bp抓包%00截断
  • 3、验证文件是否上传成功

1、看源代码

php 复制代码
$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类型文件!";
    }
}

发现这是一个白名单过滤,只能上传jpg、png、gif文件。那么白名单绕过最常见的方法就是00截断了。这里发现有一个路径拼接,也就是如果上传的文件后缀名符合白名单就会随机命名文件然后拼接到文件所在的绝对路径上。那么我们可以在文件路径进行截断,把成功上传的文件后缀名截断掉,保留我们需要的php后缀名。

2、bp抓包%00截断

这里我上传含有一句话木马的文件为23.jpg,然后%00截断让其上传23.php。因为这里的save_path是get传参,也就是说url会把%00自动解码成空字符,上传后服务器就会以为是结束符就不会读取拼接上来的jpg文件了。

3、验证文件是否上传成功

这里访问的时候记得把9020231122143153.jpg去掉,因为成功上传的其实是23.php

最后蚁剑连接成功。


总结

这一关是基于白名单的%00截断绕过,原理就是%00其实在计算机眼里是结束符,我们通过路径截断,让其拼接的正常jpg文件变成我们修改的php文件。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

相关推荐
黄焖鸡能干四碗4 小时前
信息安全网络安全评估报告(WORD)
大数据·网络·人工智能·安全·web安全·制造·需求分析
m0_738120724 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
白帽黑客-晨哥6 小时前
授权单位实战+专属应急队,湖南省网安基地如何用真实项目与应急响应锻造安全精英
web安全·网络安全·渗透测试·kali·湖南省网安基地
菩提小狗7 小时前
vulnhub靶场实战-prime|课堂笔记|网络安全|
网络·笔记·web安全
sublime889 小时前
JNPF快速开发平台存在任意文件读取漏洞 附PO
网络·安全·web安全·网络安全
上海云盾商务经理杨杨10 小时前
2026年DDoS攻防新纪元:全面解析攻击的智能化升级与防护的体系化革命
网络·web安全·网络安全·ddos
携欢11 小时前
[特殊字符] 一次经典Web漏洞复现:修改序列化对象直接提权为管理员(附完整步骤)
前端·安全·web安全
Lethehong12 小时前
第二届“启航杯“网络安全挑战赛开始啦!
安全·web安全·ctf·启航杯
lifejump12 小时前
Pikachu | Unsafe Filedownload
前端·web安全·网络安全·安全性测试
zhengfei61113 小时前
【AI工具】——人工智能驱动的自动化网络安全威胁检测平台
人工智能·web安全·自动化