目录
文件上传攻击框架
闯关攻略
欢迎来到文件上传之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. ,既可以绕过过滤
——心若没有栖息的地方,到哪都是流浪。