【upload-labs】————5、Pass-04

本文探讨了一种绕过后端文件上传检测的方法,通过使用.htaccess文件设置解析规则,使图片文件被服务器误认为PHP文件并成功执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

闯关界面

首先上传一个shell.php文件看看对于上传文件的检测是前端检测还是后端检测:

之后我们来查看一下源代码:

从上面可以看到基本上过滤了所有的常见的后缀名,而且先全部进行小写转换,对文件后缀名进行拆分,之后来进行检测,看起来好像没有戏了,那么这种情况下怎么办呢?不妨试试.htaccess攻击看看:
首先我们上传一个.htaccess文件,文件内容如下:

SetHandler application/x-httpd-php

这样所有文件都会解析为php,然后再上传图片马,就可以解析:

可以看到上传的图片文件被成功的解析为了php文件~

upload-labs靶场挑战的Pass-04关卡中,目标是通过上传一个合法的WebShell文件以获得服务器控制权限。此关卡主要测试对文件上传漏洞的理解以及绕过常见安全检查的能力。 ### 解题思路 Pass-04关卡通常会对上传文件的扩展名进行严格限制,例如只允许特定类型的图片文件(如`.jpg`、`.png`)。然而,这种检查往往仅限于前端或简单的后端逻辑,可以通过修改文件扩展名或利用服务器解析漏洞来绕过。 #### 详细步骤: 1. **创建WebShell文件**:首先需要准备一个包含PHP代码的文件,该文件可以执行任意命令。例如,使用以下内容创建一个名为`getinfo.png`的文件: ```php <?php phpinfo(); ?> ``` 这里将文件命名为`.png`是为了绕过前端对文件扩展名的检查[^1]。 2. **上传WebShell文件**:将上述创建的`getinfo.png`文件上传到服务器。由于Pass-04可能对文件扩展名进行了过滤,因此需要尝试不同的方法来绕过这些限制,例如使用大小写混合、添加特殊字符等技巧。 3. **利用`.user.ini`文件进行包含**:为了确保服务器能够解析并执行上传的PHP文件,可以在同一目录下上传一个`.user.ini`文件,内容如下: ``` auto_prepend_file=getinfo.png ``` 此配置会强制服务器在每个PHP请求之前包含指定的文件,从而触发WebShell的执行。 4. **访问WebShell**:上传完成后,尝试访问服务器上的任意PHP页面,并在其URL后面手动替换为`getinfo.png`或直接访问`readme.php`(如果存在),以确认WebShell是否成功执行。 5. **获取Webshell**:若一切顺利,此时应能看到`phpinfo()`输出的信息页面,表明已成功上传并执行了PHP代码。接下来可以将`getinfo.png`替换为更复杂的WebShell工具,如`cmd.php`,以便进一步控制服务器。 ### 注意事项 - 部分服务器可能启用了`open_basedir`限制,导致无法通过`.user.ini`进行文件包含。此时需寻找其他方式绕过限制。 - 如果发现上传的文件被重命名或无法正常访问,可能是服务器端采用了更严格的验证机制,建议尝试不同的文件名或扩展名组合。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FLy_鹏程万里

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

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

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

打赏作者

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

抵扣说明:

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

余额充值