目录
前言
upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。

(图来自: 先知社区)
Pass-1

直接上传php会被判断处于黑名单中

观察源码可知, 是前端js判断类型:


方法1
直接改前端代码:


上传成功之后并没有显示文件的路径, 那么好办, 直接dir爆破:

扫到上传目录是uplod, 然后直接链接webshell即可:
http://192.168.10.100:14722/upload/door.php

方法2
抓包修改文件后缀, 先把webshell脚本改为png图片后缀, 然后抓包重新修改为php后缀:

Pass-2
可以看到, 这关虽然和上一关相似, 看似是前端js过滤的类型, 实则过滤代码部分在服务端处理:

方法1
通过修改MIME类型绕过服务端的黑名单过滤:

Pass-3
用上一关MIME类型的方法尝试无果, 初步判断是根据文件后缀进行黑名单过滤了

方法1
可以用截断的方法绕过:

方法2
- phtml & php3
PHTML(有时叫做PHP)网页是一种包含PHP(一种和JavaScript或 Microsoft VBScript类似的语言)脚本的网页和ASP一样,PHP脚本镶嵌在网页的HTML代码之中。在页面被发送给请求的用户之前,网页服务器调用PHP解释程序来解释和执行PHP脚本。含有PHP脚本的网页通常都以“.php”、“.php3”或“.phtml”作为后缀。和ASP一样,PHP可以被认为是一种“动态网页”。
由于服务端采用黑名单的过滤方式, 这里可以使用php3或者phtml的后缀上传webshell:



上传成功!
Pass-4
这关也是采用黑名单过滤, 几乎过滤了所有有问题的后缀:

但是唯独没有发现对.htaccess文件的过滤, 于是编写一个.htaccess:
<FilesMatch "hack">
# 修改文件类型 – 下面可以让任何的文件都成为PHP那么被服务器解释
SetHandler application/x-httpd-php
AddType application/x-httpd-php .jpg
</FilesMatch>
然后将.htaccess上传到服务器, 在上传包含webshell的图片格式脚本:

包含hack字段的文件名即可被当做php解析:

为什么要匹配特定字段的文件名呢?
一部分原因是因为要隐藏这个webshell不让用户发现异常。
Pass-5
禁止了.htaccess文件的上传, 同时也无法用大小写混写绕过
方法1
由于服务器的中间件是apache2, 尝试解析漏洞:

然后访问, 发现解析成功了, apache2解析漏洞 (存在于Apache1.x和Apache2.x)
将从右向左解析后缀, 直

本文深入探讨了21种不同的上传漏洞场景,包括黑名单与白名单过滤、文件类型绕过、二次渲染防御、竞争上传策略等,提供了详尽的攻击与防御案例。
最低0.47元/天 解锁文章
372





