Bootstrap

upload-labs靶场通关步骤(更新中)

Pass-01

      打开第一关,我们先上传一个jpg文件看看这个文件上传功能正不正常

      发现可以正常上传,并且访问这个图片也能正常访问,然后我们尝试上传php文件,发现弹出个警告,不让上传

      我们上传php时开启抓包,发现抓不到数据包,说明这个上传的数据是在前端进行判断。我们将php文件后缀改为jpg上传,然后开启抓包,发现成功抓到数据包

      然后将数据信息中的文件后缀名改为php后放行数据包

      发现成功上传  

      然后我们用蚁剑连接(php文件中放着一句话木马),连接成功

Pass-02

      这一关与第一关差不多,第一关中是前端直接检测文件后缀名,第二关是到后端检测文件类型,所以这关我们直接上传php文件然后进行抓包

      这一次,我们要修改文件的类型,所以要修改content-type这一行,改为任意的图片后缀,我这里修改为image/png

      然后放行点击上传,发现成功上传

Pass-03

      这一关与前面相同,只需要在抓包中把php改为php5或者php3等就可以了(根据系统不同,有的可能运行不了)

      需要修改配置文件httpd.conf,在大概465行加入AddType application/x-httpd-php .php .phtml .php5 .php3

Pass-04

      这一关要用到apache中的.htaccess绕过,我们先创建一个.htaccess文件,内容为

<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>

      它可以将同目录下的1.png文件当作php文件运行,然后再将我们的1.php改为1.png与.htaccess一起上传后,去访问1.png文件,发现访问成功,即上传成功

Pass-05

      这关我们同样点击查看源码,发现没有过滤大小写

所以我们只需要将1.php改为1.Php就可以,这关同样因为环境问题有各种不同的效果

      发现上传成功,也是可以成功访问的

Pass-06

      这一关没有过滤去首尾空格,所以我们可以在php末尾加个空格,就可以上传,但是windows系统默认是不允许我们在文件末尾中加空格的,这就需要我们利用burpsuit抓包然后进行修改

      打开burpsuit开启抓包后点击上传,在文件信息中的文件名称后加个空格,然后放行

      发现成功上传,也可以正常连接

Pass-07

      

      这一关在查看源码后发现没有删除文件末尾的点这一个过滤

      所以我们可以像第六关那样抓包然后在文件末尾加一个点然后放行,发现成功上传

      也可以正常连接

Pass-08

      这一关没有去除::$DATA字符串

      所以我们可以在文件末尾加一个::$DATA,然后上传,发现成功上传

      然后我们访问时需要将::$DATA删除,就可以正常连接

      这里的::$DATA的作用是将上传的文件被当作数据流,当网站看到用户上传的只是个数据流,就不会对其加以防护。

Pass-09

      这一关我们需要抓包后在文件后面加上. .(中间有空格)。然后放行,就可以成功上传然后访问。

Pass-10

      这一关通过源码可以发现,他是通过检测我们上传的文件名称,如果其中有php则将其删除,所以这一关我们可以通过双写的方法,让他将将测到的php删除后,文件后缀仍然可以拼成一个php进行上传,所以这一关我们上传的文件名为1.pphphp

      发现可以成功上传,然后直接去访问该图片(点击新建标签页打开图像)

      然后尝试连接

Pass-11

      这一关需要php的版本号低于5.3.29,且magic_quotes_gpc为关闭状态(需要自己关闭),查看这关源码,很明显是一个白名单上传,它只允许上传它给定的后缀名

      我们需要将我们的php文件后缀名改为jpg然后抓包上传

      在其中的文件上传路径后直接加上我们要上传的文件---1.php%00(这里的%00为一个阻断符号,他代表网站检索路径时检索到这里就结束,这样就不会再加上后面的1.jpg从而变成1.php1.jpg了),然后放行发现上传成功

;