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文件。此文章是小白自己为了巩固文件上传漏洞而写的,大佬路过请多指教!

相关推荐
独行soc36 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
Clockwiseee3 小时前
php伪协议
windows·安全·web安全·网络安全
xcLeigh4 小时前
网络安全 | 防火墙的工作原理及配置指南
安全·web安全
安全小王子6 小时前
Kali操作系统简单介绍
网络·web安全
光路科技6 小时前
八大网络安全策略:如何防范物联网(IoT)设备带来的安全风险
物联网·安全·web安全
网络安全Jack8 小时前
网络安全概论——身份认证
网络·数据库·web安全
网络安全King8 小时前
计算机网络基础(2):网络安全/ 网络通信介质
计算机网络·安全·web安全
黑客Jack9 小时前
网络安全加密
安全·web安全·php