upload-labs通关

pass-01  针对JavaScript的处理绕过

上传了一张图片显示不存在

上传一个.php文件

我们用burp抓包一下

什么都没抓到,说明验证合法性是直接在前端进行的,怎么绕过呢?

首先我们先上传一个合法的文件

将原来的.php文件改成.jpg文件(原来的php文件其实是一句话木马)

上传,抓包,欸,这次抓到了,这个包经过了验证

这时候我们把.jpg改成.php

新标签页打开图像

发现打开的是php文件

打开蚁剑后门连接

成功绕过

或者前端禁用JavaScript也可以

pass-02 Content-Type的验证

第二关我们仍然上传一个php文件,发现居然抓到包了,说明文件的验证合法性在后端

上传一个图片

上传成功,那么这个是用什么方法验证合法性呢?

我们抓包,把concent-type删除看一下

这时候文件上传不成功

说明大概率后端的验证是通过concent-type判断的

如此一来,我们就可以把php文件的concent-type后的类型给改成img/png

上传成功

依然是用蚁剑

成功

pass-03 黑名单绕过

首先上传一个php,它提示几种类型不允许上传,可以理解成拉黑了

那我们换成其他后缀就行了,php3,php5,phtml都行

这一关的环境配置有点问题,改一下Apache的配置文件

成功

pass-04 .htaccess文件绕过

还是先上传试一下

php不允许上传,看一下源码,有很多黑名单

没有禁用hatcess配置文件,我们当然可以试一试这个

我们可以直接写一个htaccess的文件

这是将jpg,txt文件类型以php解析

上传它

欸,成功了,那我们就将原来的一句话木马改成jpg上传

好,成功了,那就连接蚁剑吧

完成

知识点:

.htaccess
作用:·分布式配置文件,一般用于 URL·重写、认证、访问控制等

作用范围:特定目录(一般是网站根目录)及其子录

优先级:较高,可覆盖Apache的主要配置文件(httpd-conf)

生效方式:修改后立刻生效


.httpd-conf
作用:包含ApacheHTTP·服务器的全局行为和默认设置
作用范围:整个服务器
优先级:较低
生效方式:管理员权限,重启服务器后生效

pass-05 user.ini绕过

这道题连.htaccess都拉入黑名单了

user.ini
作用:特定于用户或特定日录的配置文件,通常位于· Web·应用程序的根目录下它用于覆盖或追加全局配置文件 (如·php.ini) 中的· PHP配置选项。

作用范围:存放该文件的目录以及其子目录
优先级:较高,可以覆盖 php.inie
生效方式:立即生效
php.ini
作用:存储了对整个·PHP·环境生效的配置选项。它通常位于·PHP·安装目录中

作用范围:所有运行在该PHP·环境中的·PHP·请求

优先级:·较低
生效方式:重启 php或web 服务器

写一个user.ini文件

先上传这个文件

再上传包含的111.jpg

再用蚁剑连接

完成

也可以用点加空格加点绕过

pass-06 大写绕过

这关挺简单的,就是个大小写

同样是抓包,后缀改大写

连接成功

pass-07 空格绕过

对比之前的源码,发现少了一句

$file_ext = trim($file_ext); //首尾去空

所以我们可以用空格绕过

在后缀之后加空格

完成

pass-08 后缀加点绕过

源码中少了删除点,那就可以利用这个

在php后多加一个点就行

成功

做第九关之前得了解一些知识点:额外数据流

在Windows操作系统中,当你看到文件名后跟着”::$DATA"时,它表示文件的一个附加数据流(Alternate:DataStream,ADS)。数据流是一种用于在文件内部存储额外数据的机制。“
在普通情况下,我们使用的文件只有一个默认的数据流,可以通过文件名访问。但是Windows·NT·文件系统(NTFS)支持在文件内部创建额外的数据流,以存储其他信息。这些额外的数据流可以通过在文件名后面添加"::$DATA"来访问。“
例如,"1.txt"是一个文件,而"1.txt.:$DATA"是这个文件的个附加数据流。这样的数据流可以用于存储文件的元数据、备份信息、标签等。“
需要注意的是,大多数常规的文件操作工具不会意识到这些额外的数据流,而只会处理默认的数据流。要访问或操作这些附加数据流,通常需要使用特定的命令行工具或编程接口。“

pass-09 $DATA绕过

这一关的源码相较之前少了一句

$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA

这个页面是因为我们加了::DATA,既然已经上传了,那我们连接的时候吧它删了就行了

好了,可以了

pass-10 点空格点绕过

在后缀后加. .(实际上在上传的时候只剩‘.’了

完成

pass-11 双写后缀绕过

先看源码

比之前多了一句

 $file_name = str_ireplace($deny_ext,"", $file_name);

这是个字符串替换函数,它会把字符串替换成空,也就是后缀,顺序是从左到右,那我们可以在后缀多写一个php

pass-12 %00截断

这一关看源码,是白名单过滤,我们上传抓包改成jpg,然后再用%00截断

这里的php需要5.2.17版,小于5.3都可以

pass-13 0x00截断

这一关和12关差不多,upload的位置有点不同,加个111.php 0x00

做14关前了解的知识点

JPEG/JFIF(常见的照片格式): 头两个字节为·0xFF·OxD8。

PNG (无损压缩格式):头两个字节为·0x89·0x50。

GIF(支持动画的图像格式): 头两个字节·0x47·0x49。

BMP (Windows 位图格式): 头两个字节为·0x420x4D。

TIFF (标签图像文件格式): 头两个字节可以是不同的数值。

pass-14 字节标识绕过

把111.jpg文件的前两个字节改成89和50

这时候再上传显示成功,但还是不能连接蚁剑

题目有一句话

2.使用文件包含漏洞能运行图片马中的恶意代码。点击它

利用这个文件上传漏洞就可以完成

成功

pass-15 图片马绕过

getimagesize0函数返回一个包含图像信息的数组。该数组的索引如下所示:
索引·0:图像的宽度(单位: 像素)
索引·1:图像的高度 (单位: 像素)
索引 2:图像类型的常量值(可以使用·image type to mime type0函数将其转换为·MIME
类型)

索引3:包含图像属性的字符串,以逗号分隔 (如“width=500,height=300”)

如果·getimagesize0函数无法读取图像信息,则返回· false。否则,返回一个包含上述索引的数组。

IMAGETYPE_GIF:代表·GIF图像文件的常量值e
IMAGETYPE JPEG:代表·JPEG·图像文件的常量值e
IMAGETYPE_PNG:代表·PNG·图像文件的常量值4
IMAGETYPE_SWF: 代表 SWF·(ShockwaveFlash)文件的常量值eIMAGETYPE_PSD:代表 Adobe Photoshop的PSD文件的常量值IMAGETYPE_BMP:代表BMP(Bitmap)图像文件的常量值4

我们写一个包含php的图片马

错了错了,得加个后缀png

上传成功了是不是,我们仍然是利用文件包含漏洞

目录copy一下

完成

pass-16 图片马绕过

第16关和第15关是一样的,我这里就不过多赘述了

pass-17 二次渲染绕过

首先我们上传一个gif的图片

在upload中找到它,复制粘贴

对比两个文件的字节码,在相同的地方插入一句话木马

接下来的步骤就和之前一样了,利用文件包含漏洞

pass-18 条件竞争绕过

发送到攻击模块,不断发送请求

好,我们将shell传上去了

然后用蚁剑连接就行了

pass-19 apache解析漏洞+条件竞争

加个.7z

接下来也是不断上传,和上一关一样,我就不多赘述了

pass-20 后缀绕过总结

这一关没有很多的过滤条件,就是简单的绕过就可以了

甚至不用抓包,直接加个空格或者点空格点就可以

连接就可以

pass-21 审计加数组后缀绕过

把Content-Type改了

savename后加[0]

上传成功了,用蚁剑连一下,可以

完结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迪亚波罗#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值