文件上传漏洞的原理、危害及防御

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

一. 什么是文件上传漏洞

Web应用程序通常会有文件上传的功能, 例如在 BBS发布图片 , 在个人网站发布ZIP 压缩 包, 在办公平台发布DOC文件等 , 只要 Web应用程序允许上传文件, 就有可能存在文件上传漏 洞.

什么样的网站会有文件上传漏洞?

大部分文件上传漏洞的产生是因为Web应用程序没有对上传文件的格式进行严格过滤 , 还有一部分是攻击者通过 Web服务器的解析漏洞来突破Web应用程序的防护, 后面我们会讲 到一些常见的解析漏洞, 最后还有一些不常见的其他漏洞, 如 IIS PUT 漏洞等 .

二. 文件上传漏洞的危害

上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者甚至 可以直接上传一个webshell到服务器上 .

三. 常见的解析漏洞

1.IIS 解析漏洞

IIS6.0 在解析文件时存在以下两个解析漏洞 .

①当建立 *.asa  、*.asp 格式的文件夹时 , 其目录下的任意文件豆浆被 IIS 当作 asp 文件 来解析 .

② 在 IIS6.0 下 , 分 号 后面 的 扩 展 名 不 会 被 解 析 , 也 就 是 说 当 文 件 为 *.asp;.jpg

时,IIS6.0 同样会以 ASP脚本来执行 .

2.Apache 解析漏洞

在 Apache 1.x 和 Apache 2.x 中存在解析漏洞 , 但他们与 IIS 解析漏洞不同 .

Apache 在解析文件时有一个规则 : 当碰到不认识的扩展名时 , 将会从后向前解析 , 直到 碰到认识的扩展名位置 , 如果都不认识 , 则会暴露其源码 . 比如 :

1.php.rar.xx.aa

Apache 首先会解析 aa 扩展名 , 如果不认识则接着解析 xx 扩展名 , 这样一直遍历到认识 的扩展名为止 , 然后再将其进行解析 .

3.PHP CGI 解析漏洞

在 PHP的配置文件中有一个关键的选项 : cgi.fi: x_pathinfo. 这个选项在某些版本是

默认开启的 , 在开启时访问 url, 比如 :http://www.xxx.com/x.txt/x.php,x.php 是不存在的 文件 , 所以 php 将会向前递归解析 , 于是就造成了解析漏洞 . 由于这种漏洞常见于 IIS7.0 、 IIS7.5 、 Nginx 等 Web服务器 , 所以经常会被误认为是这些 Web服务器的解析漏洞 .

4.Nginx <8.03 空字节代码执行漏洞

影响版本 :0.5,0.6,0.7<=0.7.65 0.8<=0.8.37

Nginx 在图片中嵌入 PHP代码 , 然后通过访问 xxx.jpg%00.php 可以执行其中的代码 .

5. 其他

在 windows  环境下, xx.jpg[ 空格 ] 或 xx.jpg. 这两类文件都是不允许存在的 , 若这样命 名,windows 会默认除去空格或点 , 攻击者可以通过抓包 , 在文件名后加一个空格或者点绕过 黑名单 . 若上传成功 , 空格和点都会被 windows 自动消除 , 这样也可以 getshell.

如果在 Apache 中 .htaccess 可被执行 . 且可被上传 . 那可以尝试在 .htaccess 中写入 :

SetHandlerapplication/x-httpd-php

然后再上传名称为 shell.jpg 的 webshell, 这样 shell.jpg 就可解析为 php 文件 .

四. 文件上传漏洞的防御方法

很多开发者仅仅通过使用 javascript 来防御非法文件上传 , 这样验证对于一些普通用户防 止上传错误还可以 , 对专业的技术人员来说 , 这是非常低级的验证 . 攻击者可以通过非常多的 方法来突破前端验证  , 下面举两个例子 :

1. 使用 FireBug

FireBug 是一款开源的浏览器插件 , 它支持 Firefox,Chrome 等浏览器 . 它可以让 Web开 发者轻松地调试  HTML、javascirpt  、 AJAX、 CSS等前端脚本代码  . 正是因为 FireBug 功能强 大, 所以也成为了黑客的必备利器   .

如何使用 FireBug 绕过客户端检测 .

当单击提交按钮后 ,Form 表单将会触发 onsubmit 事件 ,onsubmit 事件将会调用 checkFile 函数 .checkFile 函数将会检测文件扩展名是否合法 , 并返回一个布尔值 , 如果 checkFile 函数返回 true, 则表单提交 , 反之则拦截要上传的文件 . 知道这一点后 , 可以用 FireBug 将 onsubmit 事件删除 , 这样就可以绕过 javascript 函数验证 .

2. 中间人攻击

中间人攻击和使用 FireBug 的方法完全不同 ,FireBug 是删除客户端的 javascript 验证 , 而使用 Burp Suite 等抓包软件则是按照正常的流程通过 javascript 验证 , 然后在传输中的 HTTP层做修改 .

首先把木马文件的扩展名字改为一张正常图片或文档的扩展名 , 如 jpg 扩展名 , 在上传 时使用 Burp  拦截上传数据 , 再将其中的扩展名 jpg  修改成 jsp, 就可以绕过客户端验证 .

通过以上例子  , 大家可以看出前端脚本验证是一种非常不可靠的验证方式  , 不管是对文 件上传 、XSS还是别的漏洞来说都是如此 , 当然这并不是说完全不需要做前端验证 , 而是要把 前端验证和服务器端验证相结合   .

我们来看服务端检测 , 在上传文件时 ,  大多开发者会对文件扩展名检测 , 验证文件扩展名 通常有两种方式 : 黑名单和白名单 .

黑名单过滤是一种不安全的方式 , 黑名单定义了一系列不安全的扩展名 , 服务器端在接 收文件后 , 与黑名单扩展名对比 , 如果发现文件扩展名与黑名单里的扩展名匹配 , 则认为文件 不合法 .

为什么黑名单过滤是一种不安全的方式呢 ?

比如一个 Web服务器为 IIS6.0,Web 语言为 asp 的网站 , 假定开发者使用了黑名单过滤 ,

过滤了 asp、 asa、 cer 等文件格式 , 那么可以尝试以下几种方式来绕过 : 1. 大小写 , 比如 AsP、 cER等.

2. 被忽略的扩展名 ,IIS6.0 会把 cdx 格式的文件当成 asp 来解析 .

3. 配合解析漏洞 , 上传 asp;.jpg 格式文件 .

4. 如果 Web服务器开启了其他语言的支持 , 比如可以解析 php 文件 , 那么可以上传 php

格式的木马 .

5. 利用 Windows 系统自动去除 . 和空格的特性 , 如上传扩展名 asp. 格式的文件来绕过 .

通过以上几个例子可以看出 , 黑名单过滤的可靠性并不高 , 白名单过滤相对来说较为可靠.

白名单与黑名单的机智恰恰相反 , 黑名单是定义不允许上传的扩展名 , 白名单则是定义允许 上传的扩展名 , 虽然采用白名单可以防御未知风险 , 但是不能完全依赖白名单 , 因为白名单不 能完全防御上传漏洞 , 例如各种解析漏洞等 , 白名单仅仅是防御上传漏洞的第一步 . 通常会结 合其他验证方式来使用 , 虽然不能完全防御文件上传漏洞 , 但也基本上规避了绝大部分风险.。

其他几种文件上传漏洞防御方法 :

1. 检查文件上传路径 ( 避免 0x00 截断、 IIS6.0 文件夹解析漏洞、目录遍历 )

2. 文件扩展名检测 ( 避免服务器以非图片的文件格式解析文件 )

3. 文件 MIME验证 ( 比如 GIF 图片 MIME为 image/gif,CSS 文件的 MIME为 text/css 等 ) 3. 文件内容检测 ( 避免图片中插入 webshell)

4. 图片二次渲染 ( 最变态的上传漏洞防御方式 , 基本上完全避免了文件上传漏洞 )

5. 文件重命名 ( 如随机字符串或时间戳等方式 , 防止攻击者得到 webshell 的路径 )

另外值得注意的一点是, 攻击者上传了webshell之后需要得到webshell 的路径才能通过工 具连接 webshell, 所以尽量不要在任何地方 ( 如下载链接等 ) 暴露文件上传后的地址, 在这里 必须要提一点 , 就是有很多网站的上传点在上传了文件之后不会在网页上或下载链接中暴露 文件的相对路径, 但是在服务器返回的数据包里却带有文件上传后的路径 .文章来源地址https://www.toymoban.com/news/detail-753902.html

到了这里,关于文件上传漏洞的原理、危害及防御的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Web安全】文件上传漏洞

    目录 1. 文件上传漏洞概述 1.1 FCKEditor文件上传漏洞 1.2 绕过文件上传检查功能 2. 功能还是漏洞 2.1 Apache文件解析 2.2 IIS文件解析 2.3 PHP CGI路径解析 2.4 利用上传文件钓鱼  3. 设计安全的文件上传功能 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了

    2024年02月08日
    浏览(62)
  • 【文件上传漏洞-01】文件上传漏洞及其防御

    文件上传,顾名思义就是上传文件的功能行为,之所以会发展成危害性严重的漏洞,是因为程序没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。文件上传漏洞是漏洞中最为简单的利用形式,一般只要能上传获取地址,导致可执行

    2024年02月09日
    浏览(44)
  • Web 安全之文件上传漏洞详解

    目录 文件上传漏洞的类型 文件上传的攻击方式 文件上传漏洞影响 防护措施 小结 文件上传漏洞是网络安全中的常见问题,通常发生在网站或应用程序允许用户上传文件到服务器的场景。这类漏洞如果被攻击者利用,可能导致数据泄露、非法文件分发、服务器入侵甚至整个系

    2024年02月04日
    浏览(41)
  • Web安全之文件上传漏洞详解

    文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致

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

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

    2024年02月11日
    浏览(51)
  • 23 WEB漏洞-文件上传之解析漏洞编辑器安全

    各个WEB编辑器安全讲解 https://navisec.it/编辑器漏洞手册/ 各个CMS文件上传简要讲解 wordpress,phpcms, 参考共享的中间件漏洞PDF IIS6/7简要说明-本地搭建 Apache配置安全–vulhub Apache解析漏洞-低版本 利用场景: 如果对方中间件apache属于低版本,我们可以利用文件上传,上传一个不识

    2024年02月11日
    浏览(51)
  • 《WEB安全漏洞30讲》(第5讲)任意文件上传漏洞

    文件上传漏洞,指攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意程序上传到服务器并获得执行服务器端命令的能力。 这个漏洞其实非常简单,就是攻击者给服务器上传了恶意的木马程序,然后利用此木马程序执行操作系统命令,从而获得服务器权限,造成严重

    2024年02月12日
    浏览(44)
  • 小迪安全33WEB 攻防-通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    # 知识点: 1 、中间件安全问题 2 、中间件文件上传解析 3 、 Web 应用编辑器上传 编辑器也就是第三方插件,一般都是文件上传漏洞 # 详细点: 1 、检测层面:前端,后端等 2 、检测内容:文件头,完整性,二次渲染等 3 、检测后缀:黑名单,白名单, MIME 检测等 4 、绕过技

    2024年03月16日
    浏览(60)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复

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

    2024年02月10日
    浏览(50)
  • 33、WEB攻防——通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    IIS爆过漏洞的版本:IIS6.0(windows server 2003)、IIS7.0和IIS7.5(windows server 2008) IIS6.0解析漏洞: 文件名:x.asp;x.jpg,jpg的文件后缀名,但是会被解析为asp文件; 目录名:x.asp/x.jpg, 文件目录名含有.asp后缀,x.jpg也会被解析为asp文件。 触发条件: IIS6.0这个中间件; 上传文件能不

    2024年01月24日
    浏览(81)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包