Bootstrap

upload-labs 通关攻略

配置环境后打开

Pass-01  前端的js校验

方法一   删除前端的js检验方法

1.先创建一个php一句话木马 1.php

2.上传木马不可通过,且根本没有缓冲时间,判断为前端语句的拦截

3.将前端js语句修改

4.再次上传,上传成功

5.将文件链接复制下来,运用蚁剑进行连接

方法二  上传图片后缀(jpg   png)的木马抓包修改后缀名为php

将1.php后缀名修改为png,上传并用爆破进行抓包

将png修改为php,并放行

后续操作如上,用蚁剑进行连接

Pass-02  文件类型校验

方法1 上传图片修改后缀名

上传后缀名为jpg png的php文件,运用bp进行抓包

修改png后缀名为php,并且放行

浏览器访问该图片

方法2 上传php修改文件类型

修改文件类型为imag/png,放行

新链接打开图片

Pass-03 黑名单绕过

上传php文件

将图片上的后缀文件拉入了黑名单,尝试用别的,如php3 php5等

上传成功,新链接打开图片

Pass-04  .htaccess绕过

新建一个.htaccess文件

内容为:<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>

如果文件里面有一个后缀为.png的文件,他就会被解析成.php

先上传这个.htaccess,然后上传一个1.png文件,再访问1.png

Pass-05 大小写绕过

这一关没有对大小写进行限制

上传一个文件2.Php,新链接打开图片

Pass-06 空格绕过

       文件名末尾添加空格,由于windows命名规范不允许文件名末尾出现空格,所有我们上传1.php空格的话,上传成功以后空格会被windows电脑自动删除,只留下1.php。

上传1.php文件,运用bp进行抓包

在1.php后面加空格,放行并且在新链接打开1.php

Pass-07 文件后缀点绕过

 上传1.php文件,运用bp进行抓包

在1.php后面加点,放行并且在新链接打开1.php

Pass-08 ::$data windows特性文件流绕过

在windows识别文件的时候,会把::$data当做文件流文件去识别,当我们上传1.php::$data的时候,最后的::$data是识别文件的符号,而不是后缀名,所以最终成功上传的文件名1.php。
 

上传1.php文件,bp进行抓包,在1.php后面添加::$DATA

放行并访问

最后的::$data是识别文件的符号,而不是后缀名,所以最终成功上传的文件名1.php

Pass-09 构造后缀绕过 点空格点绕过

除文件名末尾的点,剩下点空格,收尾去空,剩下点。最终上传的木马名字是木马.php点,由于文件名末尾的点不符合windows的命名规范,所以上传成功以后只剩下木马.php。

上传1.php,bp抓包,在后面添加点空格点

上传成功,访问

Pass-10 双写后缀绕过

遇到php会删除,那么双写,pphphp后缀。删除第234个字母php,前面的p和后面的hp重新组合成了php。

上传1.pphphp文件并访问

Pass-11 %00截断(GET)

上传1.png文件

添加%00,放行并访问

直接在保存的文件名后面加%00,起到截断作用,后面的文件名和我们没关系。

Pass-12 %00截断(POST)

上传文件并进行bp抓包

直接在保存的文件名后面加%00,起到截断作用,后面的文件名和我们没关系。不同于上一关的是post的%00需要url解码。

放行并访问

Pass-13 图片马

图片马不能单独用,需要和文件包含漏洞组合用。用文件包含漏洞把图片马包含到页面上执行。

上传1.png文件

新建一个1.png文件,在第一行添加.gif的开头:GIF89a

上传成功,在新标签页打开图像,发现后缀变为.gif

此时需要搭配文件包含漏洞使用

访问 include.php,在后面跟上参数和路径就能访问我们的图片马

Pass-14 图片马

同13关一样操作即可

Pass-15 图片马

同13,14关一样操作

Pass-16 二次渲染

本关需要二次渲染专用图

图片代码

上传图片文件

上传成功后即可直接连接

Pass-17 条件竞争

上传的符合它的白名单,那就进行重命名,如果不符合,直接删除!解析的机会都没有,这让我想到了条件竞争,如果我在它删除之前就访问这个文件,他就不会删除了

新建1个17.php文件

内容为:<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>

上传17.php进行抓包,发送到intruder进行不断攻击

然后用浏览器一直访问17.php,按F5一直刷新,如果在上传的瞬间访问到了,会生成webshell.php它就无法删除

Pass-18 条件竞争

18关和第17关的差距是,这关还检测了后缀名,不能直接上传php文件,所以这关要上传图片马,其他步骤和17关类似。访问图片时使用文件包含我们上传图片马 3.png,使用bp抓包,发送到攻击模块,和17关一样的操作,开始攻击

然后用浏览器一直访问22.gif,按F5一直刷新,如果在上传的瞬间访问到了,它就无法删除

Pass-19 /.绕过

19关的页面,多了一个保存名称,没有对上传的文件做判断,只对用户输入的文件名做判断

move_uploaded_file()截断

一个函数,它有一个特性,会忽略到文件末尾的/.

直接上传2.Php,保存名称为2.php/.

上传成功直接访问

;