upload-labs 21题
Pass-01 Pass-02 Pass-03 Pass-04 Pass-05 Pass-06 Pass-07 Pass-08 Pass-09 Pass-10 Pass-11 Pass-12 Pass-13 Pass-14 Pass-15 Pass-16 Pass-17 Pass-18 Pass-20 Pass-21
Pass-01 考点:js前端验证 打开靶场,获取源码,发现提交表单处存在js前端验证,在底下的源代码处发现上传文件类型的白名单只有`.jpg .png .gif`
 
- 我们选择直接禁用掉js服务,成功上传文件,并获取相对路径

- 用phpinfo()语法检测文件是否上传成功,上传成功

Pass-02 考点:MIME验证
- 打开靶场,查看源码,发现上传文件限制了Content-Type,可确定为MIME验证
 - 通过bp抓包,修改Content-Type进行文件上传
 - 用phpinfo()语法验证是否上传成功,上传成功

Pass-03 考点:黑名单绕过
Pass-04 考点:.htaccess文件绕过
- 查看源码后发现是一样的黑名单绕过,但是这次把
php5 .phtml 这类后缀名也给过滤了,再试一试.htaccess 文件绕过  - 这次.htaccess文件没有被修改文件名,可以使用,继续上传一句话木马的.png文件
 - 上传成功,获取相对路径

Pass-05
考点:后缀名特殊字符多写
- 打开靶场,检查源码,发现此题目把.htaccess后缀名的文件也在黑名单中,想到其他的后缀名绕过方式,空格,点 ,::$DATA
 - 使用bp进行改包
   - 发现都无法上传成功,尝试一下特殊字符重写,上传成功,获取相对路径

Pass-06
考点:大小写绕过
- 打开靶场,发现将后缀名转换为小写的代码没有了,选择大写绕过
 - 使用bp改包,将后缀名大写
 - 上传成功,获取相对路径

Pass-07
考点‘:空格绕过 
- 通过源码我们可知其没有对后缀进行去空处理,我们可以对其进行空格绕过,上传成功,获取相对路径

Pass-08 b 考点:点绕过 * 打开靶场,查看源码

- 发现其做了去空处理,但是没有做去点处理,选择点绕过,上传成功,获取相对路径

Pass-09
考点:Windows文件流绕过
- 打开靶场,检查源码,文件没有对后缀名进行去”::DATA”处理 。
- php在window的时候如果文件名 + " ::DATA”处理。php在window的时候如果文件名+"::DATA”处理。php在window的时候如果文件名+"::DATA"会把::DATA之后的数据当成文件流处理 , 不会检测后缀名 . 且 保 持 " : : DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::DATA"之前的文件名 他的目的就是不检查后缀名。
ps:只能是Windows系统,并且只能时php文件

- 通过bp抓包,采用::DATA的方法绕过,上传成功,获取相对路径

Pass-10 * 查看源码后发现与第五题相同 
Pass-11
考点:双写绕过
- 打开靶场先上传一个一句话木马文件,
 - 上传出错,查看源码后没有明显的提示,试一试双写后缀绕过

- 上传成功,检查能否用phpinfo连接,连接成功

Pass-12
考点:%00截断
-
打开靶场,上传一个一句话木马的php文件,回显允许图片类文件上传  -
查看源码,发现为白名单机制,但是$img_path适用save_path拼接而成的,想到%00截断  -
我们通过抓包,路径出现在url上,直接利用%00截断上传文件  -
上传成功,用phpinfo函数见检查能否连接成功,连接成功 
Pass-13
考点:0x00截断
-
打开靶场,首先获取的信息发现和上题的%00截断类似,进行bp抓包  -
与%00截断不同的是,路径没有出现在url上,想到0x00截断 -
0x00截断的原理 利用0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测  -
而0x00截断是16进制的截断,需要修改16进制的数据头,在bp中,就要在Hex中对数据进行改写,本次是将+号修改为00  -
上传成功,用phpinfo语法检查能否连接,连接成功
Pass-14
考点:文件头绕过,文件包含
- 打开靶场,发现题目要求,图片马,文件包含,以及文件上传类型
 - 查看源码,通过源码,我们可以看出其只读取文件的前两个字节判断文件类型,我们直接将其修改为图片马上传即可
 - 上传成功,但是直接访问图片并不能把图片当作php解析,所以需要文件包含漏洞
 - 用phpinfo语法检查能否连接,连接成功

Pass-15
考点:文件头绕过getimagesize()函数
- 打开靶场,发现题干与上题相同,查看源码,此题采用了getimagesize函数来读取文件类型,依旧可以适用图片马进行绕过

- 同14题一样,直接上传图片马,上传成功,获取相对路径

Pass-16 考点:文件头绕过exif_imagetype()函数 * * 打开靶场,发现题干与上题相同,查看源码,此题采用了exif_imagetype()函数来读取文件类型,依旧可以适用图片马进行绕过
 *
Pass-17 考点:二次渲染[详情分析](https://xz.aliyun.com/t/2657)

Pass-18 考点:条件竞争 * 打开靶场,查看源码,发现其涉及条件竞争

- 我们通过bp和python脚本上传一句话木马
 - 当bp爬虫修改为狙击手且无负荷时,会一直向其发包,会在不停的发包下,使其在被删除前上传成功,而python脚本会确认其是否上传成功

Pass-20
考点:文件名分割 /.绕过
- 打开靶场,查看源码,观察到move_upload_file()函数,该函数会将上传的文件移动到新位置

- 通过bp抓包,然后使用/.对其进行绕过,上传成功,获取相对路径

Pass-21
考点数:文件名分割 组+/.绕过

- 通过数组+/.的方式成功上传文件,获取相对路径

|