如何利用文件上传漏洞-以及如何修复它们

这篇具有很好参考价值的文章主要介绍了如何利用文件上传漏洞-以及如何修复它们。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

𝓲’𝓶 𝓪 𝓵𝓾𝓷𝓪𝓽𝓲𝓬, 𝓱𝓪𝓱𝓪𝓱𝓪𝓱𝓪, 𝓪𝓷𝔂𝔀𝓪𝔂, 𝓲𝓯 𝔂𝓸𝓾 𝓭𝓸𝓷’𝓽 𝔀𝓾𝓷𝓭𝓮𝓻𝓼𝓽𝓪𝓷𝓭, 𝓘 𝓳𝓾𝓼𝓽 𝔀𝓻𝓲𝓽𝓮 𝓲𝓽 𝓬𝓪𝓼𝓾𝓪𝓵𝓵𝔂, 𝓘’𝓶 𝓪 𝓵𝓾𝓷𝓪𝓽𝓲𝓬

什么是文件上传漏洞?

当服务器允许用户在不验证文件名称、大小、类型、内容等的情况下上传文件时,就会出现文件上传漏洞。在本文中,我们将了解可用于利用不当文件上传功能并绕过常见防御机制的常见攻击媒介。

文件上传请求如何工作

在深入研究文件上传功能的利用部分之前,让我们更深入地了解文件上传请求。文件上传请求有 5 个部分,如下所示:
如何利用文件上传漏洞-以及如何修复它们

  1. 文件名:这是上传文件的文件名。
  2. Content-Type : Content-Type 头用于指示上传文件的内容类型。例如:对于 png 文件,它是“image/png”,对于文本文件,它是“text/plain”。
  3. 幻数:幻数是文件开头的一系列十六进制值,用于确定文件内容的类型。
  4. 文件内容:这是文件的主要内容。
    现在我们了解了文件上传请求及其组件的基础知识,让我们探索一些用于利用文件上传的技术。

为什么文件上传漏洞是个问题?

文件上传漏洞往往被标记为高严重性。以下是文件上传功能实施不当带来的一些风险:

  • 服务器端攻击:文件上传漏洞可以通过上传恶意 web-shell 来破坏,该 web-shell 允许攻击者运行任意命令、浏览本地文件等。
  • 客户端攻击:文件上传漏洞还使应用程序容易受到跨站点脚本攻击或跨站点内容劫持。
  • DoS 攻击:文件上传功能的不当实施也会导致拒绝服务攻击。
  • 文件上传页面有时会在错误消息中泄露内部敏感信息,例如服务器内部路径。
    如何利用文件上传漏洞-以及如何修复它们
    从某种意义上说,文件上传漏洞是许多其他可能严重危害您的应用程序的安全漏洞的“网关漏洞”。现在我们来看看攻击者用来利用此漏洞的一些具体技术。

漏洞 #1:通过文件内容

远程代码执行(Web Shell 上传)

让我们从一个基本的 web shell 上传开始,它允许您在易受攻击的服务器上运行任意命令。在下面的示例中,该应用程序在易受攻击的服务器上没有安全性,这允许攻击者上传具有以下有效负载的恶意 php 文件:

<?php echo system($_GET['command']);>

现在他们可以使用 URL 在 Web 服务器上运行任意命令,即https://endpointofuploadedfile?command={command}。在大多数情况下,应用程序不允许用户将恶意文件上传到应用程序。但是可以使用您在下面看到的技术绕过这些安全措施。

绕过黑名单保护

列入黑名单的主要问题是您无法真正将所有可能的向量列入黑名单。

案例 1:

通过将被阻止的扩展名更改为大写让我们从基本的旁路开始。假设开发人员在较小的情况下屏蔽了 php、html、exe 和其他扩展。在这些情况下,我们可以更改扩展名的大小写以绕过文件上传限制。例如,可以通过将扩展名更改为 PHP 来上传 php 文件。

案例 2:

使用可能未被阻止的替代扩展程序绕过例如,开发人员可能会阻止 php、html、exe 扩展。攻击者仍然可以使用 php1、php2、php3、php4、php5、php6、phtml 等替代扩展名来绕过限制并上传恶意文件。Windows IIS 服务器的等效情况是开发人员阻止了 asp 扩展。攻击者仍然可以使用“asa”和“cer”等扩展名来绕过这种保护。IIS 7.5 及以下版本将*.asp 和*.cer 都映射到asp.dll,从而执行ASP 代码。

案例 3:

使用文件遍历序列上传文件有时服务器会限制在用户控制的目录中执行脚本,因为它们被明确配置为这样做。如果服务器与预期的内容类型不匹配,它们可能会返回某种错误。这些限制取决于目录对目录的基础。例如:file.jpg 在 /users/images 目录中上传。有可能即使攻击者能够将恶意脚本上传到该目录,服务器也不会执行该脚本。我们可以使用文件遍历序列“…/exploit.php”绕过它(如果服务器没有验证文件名)。另一个使用文件遍历序列进行利用的实例是使用服务器本地文件的名称上传序列(上传名称为“…/…/logo.png”的文件以更改应用程序的徽标)

案例 4:

绕过内容类型检查开发人员可能会使用内容类型标头检查文件的类型。例如,当您尝试上传一个 php 文件时,内容类型将为“application/x-httpd-php”。content-type 的值仍然可以使用任何代理工具进行更改。为了绕过这种保护,拦截请求并将内容类型的值更改为可接受的值(image/png,image/jpeg)。
案例 5:绕过文件类型检查

Web 应用程序可能会检查文件的签名以验证文件的类型。在这些情况下,我们可以通过添加一个幻数的文件(到有效负载的开头)或使用 exiftool 在文件的注释中添加我们的代码来绕过此检查。

绕过白名单保护

白名单保护是指开发者只允许用户上传特定类型的文件。这似乎比黑名单更容易实现,但仍然有办法绕过白名单保护。

案例 1: 绕过文件扩展名检查

该应用程序仅验证上传的文件包含有效扩展名,但不验证文件是否以该有效扩展名结尾。例如,我们可以通过使用文件名“exploit.jpg.php”来绕过它

案例 2:空字节注入

如果应用程序具有用 PHP 或 JavaScript 等高级语言编写的验证,但服务器使用 C 或 C++ 等语言处理文件,那么这可能会导致文件处理方式混乱。可以使用空字节(exploit.jpg%00.php 或 exploit.jpg\00.php)绕过保护。

漏洞 #2:通过 SVG 文件

一些应用程序允许用户上传稍后在服务器端处理的 SVG 文件。由于 SVG 格式使用 XML,攻击者可以创建恶意文件来利用 SSRF 和 XXE 等漏洞。

案例 1:SSRF

对于此漏洞,攻击者需要创建一个包含以下内容的 SVG 文件,并将受控服务器 URL 更改为自己的服务器:

<svg xmlns:svg=” http://www.w3.org/2000/svg “ xmlns=” http://www.w3.org/2000/svg “ xmlns:xlink=” http://www.w3 .org/1999/xlink " width=”200" height=”200">

<图片高度=”30” 宽度=”30”

xlink:href=”https://controlledserver.com/pic.svg”/>

</svg>

如果他们将此文件上传到应用程序,如果应用程序易受攻击,将会有一个回调。

案例二:XXE

在这里,攻击者创建一个内容如下所示的 SVG 文件,如果服务器易受攻击,则本地文件的内容在响应或图像本身中可见。

<?xml version=”1.0" standalone=”yes”?><!DOCTYPE test [ <!ENTITY xxe SYSTEM “file:///etc/hostname” > ]><svg width=”128px” height=”128px” xmlns=”http://www.w3.org/2000/svg” xmlns:xlink=”http://www.w3.org/1999/xlink” version=”1.1”><text font-size=”16 " x=”0" y=”16">&xxe;</text></svg>
案例 3:跨站脚本

在这种情况下,攻击者需要创建一个包含以下内容的 SVG 文件。如果服务器易受攻击,他们将看到一个弹出窗口,表明它是易受攻击的。

<svg xmlns=” http://www.w3.org/2000/svg ">

<script>警报('XSS');</script>

<rect x=”0" height=”100” width=”100” style=”fill: #cccccc”/>

<line x1=”20" y1=”80” x2=”80” y2=”80" style=”stroke: #ff0000; 笔划宽度:5;”/>

</svg>

漏洞 #3:通过文件名

案例 1:DoS(拒绝服务)

当上传文件的名称没有文本限制时,攻击者可能会创建一个长而重的文件名,从而对应用程序造成拒绝服务攻击。

案例 2:XSS(跨站脚本)

文件名有时本身会反映在页面中,因此只需更改文件名就可以在易受攻击的服务器上触发跨站点脚本。
对于此漏洞利用,只需将文件重命名为“/>

漏洞 #4:通过文件大小

案例 1:

拒绝服务Web 应用程序有时不验证上传文件的文件大小。在这种情况下,Web 应用程序可能容易受到拒绝服务攻击,可以通过上传许多会耗尽服务器托管空间的大文件来加以利用。此漏洞也称为像素泛洪攻击。

如何防范和缓解文件上传漏洞
  • 您的应用程序应始终检查上传文件的内容。如果它检测到任何恶意内容,则必须丢弃该文件。
  • 维护允许扩展的白名单。
  • 确保一个文件不包含多个扩展名。确保文件名不能包含任何特殊字符,如“;”、“:”、“>”、“<”、“/”、“\”、“.”、“*”、“%”等。
  • 限制文件名的大小。
  • 限制文件上传的大小(最小和最大)以防止 DOS 攻击。
  • 确保禁用存储所有上传文件的目录的执行权限。确保上传的文件不会替换服务器的本地文件。

最后

最后的最后的最后的最后的最后的再见
如何利用文件上传漏洞-以及如何修复它们文章来源地址https://www.toymoban.com/news/detail-454019.html

到了这里,关于如何利用文件上传漏洞-以及如何修复它们的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 24 WEB漏洞-文件上传之WAF绕过及安全修复

    safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现在很多网站都是用宝塔 Content-Disposition: 表单数据,一般可更改 name:表单参数值,不能更改,改完之后,数据包是有问题的,跟前端的表单值会对不上,这样后端会无法判断你上传的地方,如果要更改,那

    2024年02月10日
    浏览(50)
  • 上传漏洞(一句话木马、中国菜刀使用、DVWA文件上传漏洞利用)

       可抓包后修改扩展名为图片格式,再上传可绕过验证。如:   可以修改php文件后缀为其他,再上传。如test.php.xxx  可对图片文件添加一句话木马,再修改为.php上传,会解析为图片上传此文件。    客户端验证绕过的方法有:  例:   1)木马分为大马、小马和一句话木马:

    2024年02月11日
    浏览(44)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复

    目录 WAF绕过 上传参数名解析:明确哪些东西能修改? 常见绕过方法: `符号变异-防匹配(’ \\\" ;)` 数据截断-防匹配(%00 ; 换行) 重复数据-防匹配(参数多次) 搜索引擎搜索fuzz web字典 文件上传安全修复方案 WAF绕过 safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现

    2024年02月20日
    浏览(48)
  • Web安全:文件上传漏洞测试(防止 黑客利用此漏洞.)

    现在大多的网站和Web应用系统都会有上传功能(比如:文档,图片,头像,视频上传等.),而程序员在开发文件上传功能时,没有对代码做严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(php,jsp、aspx,asp文

    2024年02月11日
    浏览(51)
  • 用友时空KSOA ImageUpload任意文件上传漏洞复现+利用

      用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业最前沿的I需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话,帮助流通企业保护原有的IT投资,简化IT管理,提升竞争能力,确保企业整体的战略目标以及创新活

    2024年02月15日
    浏览(51)
  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧

      首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识 超详细的网络安全笔记 分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记​编辑https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    浏览(48)
  • PHP文件上传漏洞原理以及防御姿势

    0x00 漏洞描述 ​ 在实际开发过程中文件上传的功能时十分常见的,比如博客系统用户需要文件上传功能来上传自己的头像,写博客时需要上传图片来丰富自己的文章,购物系统在识图搜索时也需要上传图片等,文件上传功能固然重要,但是如果在实现相应功能时没有注意安全

    2024年02月02日
    浏览(80)
  • 用友GRP-U8 U8AppProxy任意文件上传漏洞复现+利用

         用友GRP-U8R10行政事业财务管理软件是用友公司专注于电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域专业的财务管理软件。用友 GRP-U8 U8AppProxy接口存在任意文件上传漏洞,攻击者通过漏洞可以获取服务器权限。    用友GRP-U8行政事业内控

    2024年02月11日
    浏览(44)
  • 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell

    我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件 目标主机文件存在(目标文件的路径、绝对路径、相对路径) 具有文件可读权限 提交参数 http://localhost/include/include.php?path=C:windowssystem32driversetchosts ,读取本地host文件 提交参数 http://localhost/include/includ

    2024年02月11日
    浏览(46)
  • [网络安全] Windows Server 设置文件屏蔽防止黑客利用漏洞上传特定类型的非法文件(.asp .aspx .jsp .php)

    [网络安全] Windows Server 设置文件屏蔽防止黑客利用文件上传漏洞上传特定类型的非法文件(.asp .aspx .jsp .php) 我在负责网站运维期间,遇到过一次黑客利用公司网站内使用的开源文件上传工具漏洞上传非法文件(可执行脚本) 我是通过设置文件屏蔽来防止此类事件的再次发生。

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包