文件上传-黑名单关键字绕过

[题目信息]:

题目名称 题目难度
文件上传-黑名单关键字绕过 1

[题目考点]:

复制代码
黑名单文件后缀名检测

[Flag格式]:

复制代码
SangFor{bvgizCoInMSfB5PKETz5W-e4Tn56XXra}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

复制代码
端口:11005

[题目writeup]:

1、实验主页

2、对于上传点的测试思路

正在上传...重新上传取消

3、上传标准图片文件

可以看到图片正常上传

正在上传...重新上传取消

F12或者邮件审查元素,打开控制台,使用该按钮点击图片,可以发现图片上传位置;

上传1.php文件并抓包

正在上传...重新上传取消

对于黑名单的绕过是最容易理解的一种绕过方式,只要可以突破上传点没有限制到的后缀名即可上传成功。

举例几种常见的后缀名:

复制代码
".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",

在测试上传点时,只要上传点忽略了其中一点,我们就能够上传可以解析的php文件;

至于如何知晓哪些后缀没有被限制,可以使用 burpsuite 批量上传来测试后缀名。

首先随意抓取一个 request 请求包发送给 intrude:

接着添加以下 payload 并开始攻击:

复制代码
php
php7
php5
php4
php3
php2
php1
html
htm
phtml
pHp
Php
phP
pHp5
pHp4
pHp3
pHp2
pHp1
php.
php. .
php 

正在上传...重新上传取消

正在上传...重新上传取消

复制文件后缀,开始爆破;

正在上传...重新上传取消

可在Response模块查看回显结果

访问php3后缀文件,成功解析为php。

那么为什么php3后缀的文件会被作为php文件成功解析呢?

在apache2服务器的配置文件apache.conf中

有AddType模块

该配置模块规定了哪些后缀可以被视为php文件解析;

相关推荐
JaguarJack14 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay2 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954482 天前
CTF 伪协议
php
BingoGo4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack7 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel