靶场 upload-labs pass11-20

本文详细介绍了在upload-labs靶场中pass-11至pass-20的破解过程,涉及文件后缀黑名单、白名单、路径截断、文件头过滤、条件竞争等安全漏洞利用技巧,以及如何利用图片马和Apache解析漏洞来绕过上传限制。
摘要由CSDN通过智能技术生成

pass-11

这里本关中,对后缀名有一个黑名单,若后缀出现黑名单中的字符,则将它替换为空。下面是源码。在这里插入图片描述我们就可以利用这一点了。它只替换其中的一次,那构造一个复写的可能可以饶过它。在这里插入图片描述

连一下试试
在这里插入图片描述

pass-12

看源码,发现是白名单的,就只能上传jpq,gif,png。提示文件路径可控。在这里插入图片描述源码中$file_arr 的目的是 将.后的文件后缀名取出来
$img_path 以 post 方式传入文件保存路径 ,这里是采用拼接的方式,有机可乘。
抓包看看有什么信息。
在这里插入图片描述url中我们可以看到save_php字段,请求头中有Content-Disposition中作为下载文件的标识字段。在这里是作为校验,并且拼接文件上传路径。
了解到这些后,我们要先饶过上传,改Content-Disposition字段中filename文件后缀名,饶过检查。此外,我们还要保证上传的是php文件,那就要利用到路径的拼接和截断字符,把我们改了的文件后缀名失效掉

bug.php%00bug.gif 上传后 php后面就没有了

在这里插入图片描述放包后上传成功。在这里插入图片描述
连接时我们拖拽那个图片文件得到的url要将php后面的多余的字符删除掉。这样就连接成功了。这是因为我们上传到文件路径中的文件就是php文件。
在这里插入图片描述

pass-13

源码和12关一样,抓包看看有啥区别。
在这里插入图片描述他的save_path不在url中,我们还是一样的思路,只是截断字符不一样了。
在save_path写入的php后面写上一个占位符。
在这里插入图片描述
在点入hex(16进制编码)中找到它,
在这里插入图片描述找到我们要改的地方。改了为00截断字符
在这里插入图片描述
上传成功在这里插入图片描述

pass 14

图片马。先看源码

function getReailFileType($filename){
   
    $file = fopen($filename, "rb");
    $bin = fread($file, 2);   //只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);    
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
    $fileType = '';    
    switch($typeCode){
         
        case 255216:            
            $fileType = 'jpg';
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值