upload-labs通关秘籍
1、第一道题界面所下,对于文件上传
漏洞一般要先看源代码,看是否有对哪些文件类型进行限制,对于这一题,是只允许上传图片格式文件,因此可以采用将木马文件类型改成图片格式,来绕过,进行上传,再利用burp进行抓包,再将文件格式改为php类型,再进行forward,会发现上传时不会提示。
上传成功,耶!!!
2、第二道题,一样的步骤,首先查看这个上传源代码,如下图所示,这是一道MIME的题目,意思是只允许这几种类型的文件上传,我们可以上传php文件时,利用burp软件进行抓包,抓到包之后,将Content-Type改成image/jpeg的格式,再上传,及时文件类型为php也没有什么问题。
文件上传上去,没有报错。
3、第三道题和上面一样步骤,先查看源代码,这个代码表示,asp,aspx,php,jsp这几种类型文件不被允许上传,并且所有子母被转换成小写,那我们可以采用不同类型的后缀名,比如.php5,发现上传没有任何问题。
4、废话不多说,上代码,这个上传拒绝这么一大串文件类型的文件进行上传,似乎没有其他方法了,但是方法比问题多,我发现他遗漏了一个后缀名文件,就是.htaccess文件,文件内容为
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
上传成功之后再上传一个1.jpg来运行脚本
5、第五道题我们观察代码之后发现,.htaccess文件也不允许上传了,然后我们不知道该怎么上传文件了,我们发现不允许这些文件类型文件,因此我想到一种特殊方式,空格绕过,但是这里有一个首尾去空,在.php前面加上一个空格,发现文件可以成功上传。
6、第六题,看代码,发现没有将后缀名改为小写,因此可以采用大小写绕过,
上传成功!
7、第七道题,我观察代码可以看出,这个代码和第五题代码很像,只是没有首尾去空这个限制条件,因此我们可以在php尾部进行添加空格,来进行上传木马文件。
8、第八道题,看代码,发现和第五题代码几乎一样,因此可以采用一样的方法,空格绕过,但是这里有一个首尾去空,在.php前面加上一个空格,发现文件可以成功上传。
9、第九题,发现代码和第八题如出一辙,虽然依然可以使用第五题和第八题一样的方法,但是我们用点不一样的,采用点空格点绕过,
上传成功!!!
10、第十题,观察代码,发现和上题代码类似,可以采用上题点空格点方法绕过,也可以采用双写绕过,这里我使用双写绕过方式。
11、第十一题,看代码,可以知道这是将黑名单过滤,将黑名单里的后缀名替换为空且只替换一次,因此和上题一样可以用双写绕过。
12、第十二题,代码如下图所示,从代码可以知道通过白名单判断,但$img_path是直接拼接,因此可以利用%00截断绕过,当php版本小于5.3.4,php的magic_quotes_gpc为OFF状态。
13、第十三题代码如下,这一道题代码咋一看和上题一样,但是仔细一看,还是有区别的,不然怎么是两题,save_path参数通过POST方式传递,还是利用00截断,因为POST不会像GET对%00进行自动解码,所以需要在二进制中进行修改。上传木马文件
14、第十四道题界面如下图所示,从这个界面当中我们可以获得一些信息,比如只能上传图片形式文件,且需要文件包含漏洞才能运行图片马,首先我们需要创建一个图片马,图片马创建成功之后上传。
图片马制作成功!!
15、第十五题,代码如下所示,从代码可以看出这题是用getimagesize函数判断文件类型,还是可以图片马绕过,方法同上面一题相同,
16、第十六题代码如图所示,可以看出这是用到php_exif模块来判断文件类型,用图片马绕过,方法同上面两题相同,
17、第十七题代码如图,这一题综合判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染。二次渲染即图片内容被打乱重组,并且这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell。
18、第十八题界面以及代码如下图所示
后面几题还没有想出来怎么写 !!!