文件上传之Upload-Labs过关

目录

文件上传攻击框架

less-1 - js限制

less-2 - MIME类型检测

less-3 - 黑名单限制

less-4 -

less-5 - 大写后缀PHP绕过

less-6 - 空格绕过

less-7 - 点绕过

less-8 - ::DATA

less-9 - 点空格点绕过

less-10 - 双写绕过

less-11 - GET型00截断

less-12 - POST型00截断

less-13 - 图片马

less-14 - 图片马

less-15 - 图片马

less-16 - 图片马

less -17 - 条件竞争

less-18 - 条件竞争-图片马

less-19 - 系统特性


文件上传攻击框架

闯关攻略

欢迎来到文件上传之Upload-Labs闯关,接下来介绍每一关的上传绕过方式。每一关都有多种的绕过方式。

less-1 - js限制

  方法1

1. 直接上传一个1.php的文件,内容为一句话木马

<?php phpinfo(); ?>

我们上传的时候开启了bp抓包,点击上传的时候,弹出对话框,可是流量并没有经过代理软件bp,由此我们猜想为前端上传的限制,我们查看源码发现,里面有个js的上传限制函数

找到元素中这个函数,直接删除

再点击上传,成功上传,这是我们就可以在页面元素中查看上传的文件地址,进行访问

  方法2

或者我们先上传一个png的文件,再抓包改为php的后缀就能绕过

  方法3

bp设置自动剔除前端js,就可以直接上传上传成功 bp剔除js   

less-2 - MIME类型检测

  方法1

原理:其content-type(mime)是由客户端根据你上传的文件生成的

当点击上传php的时候,bp抓取到了流量。排除前端限制

1. 显示文件类型不正确

2. 把php后缀改为png后缀,还是不行,那我们想难道是对内容进行了检测?于是把内容改为1,可还是不行

3. 那我们就想到,它是对文件的内容类型进行了限制,通过MIME类型检测,即服务器根据Content-Type值来检测是否符合上传的类型,不符合就不允许上传,于是我们修改Content-Type为image/png,此时上传成功。php后缀的也能上传成功

4. 查看下源码

  方法2

因为content-type(mime)是由客户端根据你上传的文件生成的,所以直接上传png类型的文件,此时content-type就位image/png,直接上传成功。

less-3 - 黑名单限制

上传不在黑名单中的文件后缀,如php3,php5,phtml等

less-4 -

  方法一:.htaccess

采用黑名单限制的方式,观察代码发现未过滤.htaccess文件 ,关于.htaccess攻击

1. 把png文件当做php文件来执行

2. 再上传一个png文件,内容为php代码

3. 访问图片

  方法二:apache文件名解析漏洞

利用Apache 文件名解析漏洞(5.2.x以下)(info.php.x 绕过)可以绕过,传送门-》apache文件名解析漏洞

less-5 - 大写后缀PHP绕过

也是黑名单,将后缀改为大写PHP即可

less-6 - 空格绕过

也是黑名单检测,源码中文件后缀过滤了点,但是没有过滤空格,所以文件后缀后面加空格或者点空格或者点空格点都能绕过

less-7 - 点绕过

也是黑名单检测,源码中文件后缀过滤了空格,但是没有过滤点,所以文件后缀后面加点或者点空格点都能绕过

less-8 - ::DATA

也是黑名单检测,没有过滤::$DATA。在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名

例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"

less-9 - 点空格点绕过

也是黑名单检测,源码中文件后缀过滤了点和空格,所以后缀加点空格点既可以绕过

less-10 - 双写绕过

观察源码未将文件的后缀替换为小写,在黑名单中的后缀都将替换为空,所以可以双写绕过

less-11 - GET型00截断

从这一关开始将进入白名单

看到是白名单判断,我们可以控制上传的路径,但是$img_path直接拼接,因此可以利用%00截断绕过:

less-12 - POST型00截断

这一关和上一关的区别是,00截断是用在POST中,且是在二进制中进行修改。因为POST不会像GET那样对%00进行自动解码。将2e修改为00

less-13 - 图片马

本关要求上传图片马。图片马们可以结合文件包含漏洞进行使用,利用文件包含漏洞的无条件解析文件名的特性,传送门 -》文件包含 。

传送门 -》图片马的生成方式

less-14 - 图片马

此关要求我们上传GIF的图片马

传送门 -》图片马的生成方式

less-15 - 图片马

和第十三关一样

less-16 - 图片马

本关综合判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片。上传一个JIF的图片马就行

less -17 - 条件竞争

如何重复的发包 ,传送门 -》intruder发不带payload的数据包

然后我们访问shell,按住F5不停地刷新浏览器,发现通过竞争可以访问到:

less-18 - 条件竞争-图片马

本关需要上传图片马,查看代码发现:本关对文件后缀名做了白名单判断,然后会一步一步检查文件大小、文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,如下图片马上传成功且来不及重命名。

less-19 - 系统特性

这关我们可以对上传的图片进行一个重命名

我们将保存的图片名称设置为.php. ,既可以绕过过滤

——心若没有栖息的地方,到哪都是流浪。

猜你喜欢

转载自blog.csdn.net/qq_44159028/article/details/114434494