(二阶段)文件上传

本文详细描述了在特定环境中利用Apache和MySQL搭建靶场,通过前端验证、content-type验证、黑名单和白名单策略,以及多种文件后缀名、字符绕过方法,演示如何绕过Web应用的文件上传安全措施,包括图片马利用和二次渲染等内容。

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

前期准备

环境:

web服务器采用Apachce

数据库服务采用MySQL

靶场:

upload-labs

工具:

burp

phpStudy

蚁剑

说明:

本文采用使用物理机访问虚拟机的方式,开启复现前将杀毒软件关闭,避免木马失效。

使用连接工具条件:知道路径、木马不被免杀、文件能够解析

复现

(1)Pass-01 前端验证

因为是前端验证,所以我们可以打开查看器将前端验证函数删除,或将浏览器的 JavaScript 禁用,也可以用先上传然后抓包修改后缀名;

这里选择带有一句话木马的文件用来连接工具

抓包,禁用Javascript,然后放包

此时文件上传成功,我们看一下路径。

连接蚁剑,输入路径和连接密码

(2)Pass-02 content-type类型验证

本官采用文件头部类型验证。我们上传任意文件只需通过bp修改content-type字段为需要的类型

首先上传一个1.php

<?php
phpinfo();
?>

修改content-type类型为image/png,放包。

(3)Pass-03 (黑名单)文件后缀名验证

本关采用黑名单的方式验证文件后缀名,尝试php3、php5、phtml等后缀

修改Apache的httpd-conf文件。 去掉前面#号的注释文件,然后添加一些对应的文件后缀

上传1.php抓包修改后缀为php3,放包

(4)Pass-04(黑名单)文件后缀名验证-.htaccess文件绕过

.htaccess介绍:

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可 以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录 的访问、禁止目录列表、配置默认文档等功能

在Apache中如果需要启动 .htaccess,必须在httpd_conf中设置 AllowOver

在Apache服务器配置中,AddType指令和<FilesMatch>指令都可以用于改变特定文件类型的处理方式,但它们之间存在一些差异。具体分析如下:

  • AddType:AddType 是一个用来关联特定文件扩展名与特定的内容类型(MIME类型)的指令。当使用 AddType application/x-httpd-php .jpg 时,所有 .jpg 扩展名的文件都会被服务器解释为 application/x-httpd-php 类型,即 PHP 脚本。这意味着,无论这些 .jpg 文件位于服务器的哪个目录,服务器都会尝试以 PHP 来执行它们。
  • FilesMatch:<FilesMatch> 指令则提供了一种更为灵活的方式来匹配文件并设置它们的处理方式。它允许基于文件名、大小或者其他属性来应用特定的配置。例如,<FilesMatch "1.jpg"> SetHandler application/x-httpd-php</FilesMatch> 仅对名为 1.jpg 的文件应用 SetHandler 指令,使其被当作 PHP 来处理。这种方式通常更适用于针对特定文件进行特殊处理,而不影响其他同名但是不同目录或类型的文件。

总的来说,AddType作用于所有的指定扩展名文件,而<FilesMatch>只针对符合特定模式的文件。

.htaccess文件内容: 

<FilesMatch "1.png">

SetHandler application/x-httpd-php

</FilesMatch>

我们首先上传.htaccess文件,然后上传1.png

(5)Pass-05 (黑名单)文件后缀名验证-.ussr.ini文件绕过

(6)Pass-06 (黑名单)文件后缀名验证-大小写绕过

(7)Pass-07(黑名单)文件后缀名验证-空格绕过

(8)Pass-08(黑名单)文件后缀名验证-点号绕过

(9)Pass-09(黑名单)文件后缀名验证-特殊字符::$DATA绕过

(10)Pass-10 (黑名单)文件后缀名验证-点空格点绕过

(11)Pass-11 (黑名单)文件后缀名验证-双写绕过

(12)Pass-12 (白名单)get-0x00截断

(13)Pass-13 (白名单)post-0x00截断

(14)Pass-14 (图片马)利用file协议

(15)Pass-15 (图片马)利用getimagesize

(16)Pass-16 (图片马)利用exif_imagetype

(17)Pass-17 二次渲染

(18)Pass-18 条件竞争一

(19)Pass-19 条件竞争二

(20)Pass-20 对保留文件的黑名单验证

(21)Pass-21 (白名单)数组验证绕过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值