upload-labs 文件上传靶场

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

目录

前言

Pass-1

Pass-2

Pass-3

Pass-4

Pass-5

Pass-6

Pass-7&8

Pass-9

Pass-10

Pass-11

Pass-12

Pass-13

Pass-14

Pass-15

Pass-16

Pass-17

Pass-18

Pass-19

Pass-20

Pass-21


 

前言

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)

将从右向左解析后缀, 直

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值