ToB企服应用市场:ToB评测及商务社交产业平台

标题: 《白帽子讲 Web 安全》之文件操作安全 [打印本页]

作者: tsx81428    时间: 7 小时前
标题: 《白帽子讲 Web 安全》之文件操作安全
目次

弁言
(一)文件上传与下载毛病概述
1.文件上传的常见安全隐患
1.1前端校验的脆弱性与服务端脚本执行危急在文件上传流程中,部门开辟者可能会在前端使用 JavaScript 代码对文件后缀名进行简单校验,试图以此阻止非法文件上传。但这种做法存在严峻缺陷,因为前端代码在用户欣赏器端运行,攻击者可容易通过欣赏器开辟者工具或其他手段修改前端代码,绕过此类校验。
1.2基于 Content-Type 判定文件类型的不可靠性
1.3恶意构造畸形文件的威胁
1.4上传网页文件的风险
1.5服务端缺乏安全检查与内容查验
1.6可猜测的文件存储路径与未授权访问
1.7Web 服务器 PUT 方法的潜在风险
 1.8Windows 体系 NTFS 文件体系的安全隐患
 1.9上传压缩包的安全风险
2.文件下载的安全隐患
2.1路径解析毛病
2.2路径穿越攻击与任意文件读取毛病
2.3Nginx 配置不精确造成的路径穿越毛病
(二)文件上传与下载的安全策略
1.文件上传安全
1.1 文件路径信息的安全
毛病利用方式
防御措施
1.2 文件内容的安全
毛病利用方式
防御措施
2.文件包含毛病
2.1本地文件包含与远程文件包含
本地文件包含
远程文件包含
毛病利用方式
防御措施
2.2用文件包含实现拒绝服务攻击
毛病利用方式
防御措施
3.文件上传安全策略
3.1路径信息的安全考虑
3.2文件内容的安全考虑
4.文件下载安全
4.1路径信息的安全考虑
4.2文件内容的安全考虑
(三)对象存储的安全题目
总结


弁言

在当今数字化时代,Web 应用已成为人们生活和工作中不可或缺的一部门。从日常的交际分享、在线购物,到复杂的企业业务处理,Web 应用承担着海量的数据交互任务。而文件操作,作为 Web 应用中频仍涉及的功能,无论是文件上传以丰富内容,还是文件下载以获取资源,其重要性不言而喻。然而,犹如硬币的两面,文件操作在带来便利的同时,也潜藏着诸多安全风险。
   文件操作是 Web 应用中最常见的功能之一,无论是文件上传、下载,还是文件处理,都与用户的日常操作密切相关。然而,这一看似简单的功能模块却是 Web 安全中的高危地带。攻击者常常通过文件操作毛病,绕过服务器的安全机制,实现对服务器的控制、敏感信息的窃取甚至网站的完全接管。
  《白帽子讲 Web 安全》一书中,吴翰清和叶敏对文件操作的安全题目进行了体系化的分析,从文件上传、下载到文件包含、路径穿越等常见毛病,逐一剖析其原理、利用方式及防御策略。本文将结合书中的内容,对这一章节进行全面总结,力图通过具体的讲解和实际案例,帮助读者深入明白文件操作中的安全风险,并把握相应的防护措施。

(一)文件上传与下载毛病概述

1.文件上传的常见安全隐患

1.1前端校验的脆弱性与服务端脚本执行危急
在文件上传流程中,部门开辟者可能会在前端使用 JavaScript 代码对文件后缀名进行简单校验,试图以此阻止非法文件上传。但这种做法存在严峻缺陷,因为前端代码在用户欣赏器端运行,攻击者可容易通过欣赏器开辟者工具或其他手段修改前端代码,绕过此类校验。


例如,攻击者想要上传一个恶意的 PHP 脚本文件,正常情况下前端校验会阻止.php后缀文件上传,但攻击者只需修改校验函数逻辑,就能顺利上传该文件。更为严厉的是,很多 Web 脚本语言,如 PHP、ASP 等,当服务器吸收到上传文件后,若文件后缀名符合可执行脚本类型,且服务器配置答应,就会主动执行该文件中的代码。一旦恶意脚本文件被执行,攻击者便能肆意控制服务器,执行诸如窃取敏感数据(如用户信息、数据库凭证)、篡改网站页面内容、植入后门步伐等恶意操作。
   上传文件时 Web 脚本被服务器执行
  文件上传毛病的核心题目是上传的文件被服务器看成可执行脚本运行。攻击者通常会上传包含恶意代码的文件(如 .php, .jsp 等),并通过访问这些文件来触发代码执行。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  

1.2基于 Content-Type 判定文件类型的不可靠性


有些服务端在判定上传文件类型时,仅依赖 HTTP 哀求头中的 Content-Type 字段。然而,Content-Type 极易被伪造。
例如,攻击者将一个经心构造的恶意可执行文件(如.exe文件)伪装成常见的图片文件(如.jpg)。在构造 HTTP 哀求时,通过工具将哀求头中的 Content-Type 字段设置为image/jpeg,服务端仅依据此判定,便可能将其误判为合法图片文件,从而答应上传。这种简单的文件类型判定方式,在面临有肯定技能能力的攻击者时,险些毫无防御能力,为恶意文件上传大开方便之门。

1.3恶意构造畸形文件的威胁


攻击者可经心构造畸形文件,以此攻击服务端。这些畸形文件不符合正常文件格式规范,却能利用服务端文件处理步伐或相关库的毛病。以图像处理库为例,当服务端使用某些图像处理库处理图片文件时,若攻击者上传一个经过特别构造的畸形图片文件,该库在解析文件结构时可能会出现内存溢出毛病。攻击者利用此毛病,可执行任意代码,获取服务器控制权;或者通过不停上传此类畸形文件,消耗大量服务器资源,如 CPU、内存等,导致服务器瘫痪,形成拒绝服务攻击(DoS),使正常用户无法访问网站服务。
   恶意构造畸形文件威胁服务端
  攻击者可能会构造畸形文件(如破坏的图片文件或包含恶意代码的压缩包),利用服务器对文件的处理逻辑,消耗服务端的资源或触发服务器瓦解。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  

1.4上传网页文件的风险


若 Web 应用答应用户上传网页文件,这将为攻击者提供实施垂纶攻击和跨站脚本(XSS)攻击的绝佳机会。攻击者可上传一个模拟知名网站登录页面的恶意网页,当其他用户访问该网页时,误以为是正常网站,输入账号暗码等敏感信息,攻击者便能轻松窃取这些信息。
在跨站脚本攻击方面,攻击者在上传的网页文件中嵌入恶意 JavaScript 脚本,当其他用户欣赏该网页时,脚本在用户欣赏器中执行,可获取用户的 Cookie、会话令牌等关键信息。利用这些信息,攻击者能劫持用户会话,以用户身份在网站上进行各种操作,如转账、修改用户资料等,严峻侵犯用户权益。
    答应上传网页威胁用户
  攻击者可能会上传包含恶意代码的网页文件(如 .html, .js 等),通过诱导用户访问这些文件,实施垂纶攻击或 XSS 攻击。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  

1.5服务端缺乏安全检查与内容查验


若服务端在文件上传过程中未进行严酷的安全检查和内容查验,就犹如敞开大门,任由恶意文件长驱直入。攻击者可上传各类恶意文件,如病毒文件、蠕虫文件、木马文件等。这些文件一旦在服务器上传播,或被其他用户下载,将造成严峻效果。
例如,恶意文件可能感染服务器上的其他文件,粉碎数据完备性,导致业务数据丢失;或者通过服务器进一步传播到其他用户的装备上,感染用户装备,窃取用户隐私信息,控制用户装备进行恶意活动,如发起分布式拒绝服务攻击(DDoS)等。
    服务端未对文件做安全检查或内容查验
  攻击者可能会上传包含敏感信息或恶意代码的文件,而服务器未能对其进行有用的安全检查。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  
1.6可猜测的文件存储路径与未授权访问


在一些 Web 应用中,文件存储路径的天生规则较为简单,易于被攻击者猜测。
例如,部门应用可能按照用户 ID 和时间戳的组合来天生文件存储路径,如/uploads/user_{user_id}/{timestamp}/file.ext。攻击者通过摆列或猜测用户 ID 和时间戳,就能实验访问其他用户上传的文件。若此时应用未对文件访问采取严酷的授权措施,攻击者便能直接访问这些文件,获取用户的敏感信息,如个人照片、重要文档等,侵犯用户隐私,也可能对应用的声誉造成负面影响。
   上传的文件存储路径可以猜测且未采取授权措施
  攻击者可能通过猜测文件的存储路径,直接访问其他用户的文件,导致敏感信息走漏。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  
1.7Web 服务器 PUT 方法的潜在风险


当 Web 服务器支持 PUT 方法,且配置不当时,攻击者可利用该方法上传任意文件到服务器的任意位置。PUT 方法本来用于向服务器上传文件,但假如服务器未对上传路径和文件类型进行有用限制,攻击者可将恶意脚本文件上传到 Web 服务器的根目次或其他关键目次。
例如,攻击者将一个恶意的 WebShell 文件(如evil.php)上传到 Web 服务器的根目次,随后通过欣赏器访问该文件,便能获取服务器的控制权,执行任意下令,对服务器进行全面攻击,包罗篡改网站内容、窃取数据、安装恶意软件等。
    Web 服务器支持 PUT 方法造成重大题目
  某些 Web 服务器默认支持 PUT 方法,攻击者可以利用这一点上传恶意文件,绕过传统的文件上传接口。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  
 1.8Windows 体系 NTFS 文件体系的安全隐患


Windows 体系的 NTFS 文件体系具备可选数据流(ADS)特性,这一特性在正常情况下为文件管理提供了肯定便利,但也被攻击者利用来实施恶意行为。攻击者可将恶意代码隐蔽在正常文件的可选数据流中。
例如,攻击者将一个恶意的可执行文件(如backdoor.exe)隐蔽在一个看似正常的图片文件(如image.jpg)的可选数据流中。当应用步伐在处理该图片文件时,由于对可选数据流的处理不当,可能会不测执行隐蔽在其中的恶意代码。攻击者借此实现其预期外功能,如在用户装备上植入后门步伐,远程控制用户装备,窃取用户信息等,且这种攻击方式具有很强的埋伏性,不易被发现。
    Windows 体系利用 NTFS 文件体系的可选数据库
  Windows 体系的 NTFS 文件体系支持可选数据库(Alternate Data Streams,ADS),攻击者可以利用这一特性隐蔽恶意代码。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  
 1.9上传压缩包的安全风险


在答应上传压缩包的 Web 应用场景中,假如应用在解压和读取压缩包内容时未进行严酷安全检查,攻击者可通过上传包含恶意文件的压缩包突破安全防线。攻击者可在压缩包中放置恶意脚本文件,如evil.php,当 Web 应用解压该压缩包并实验执行其中的脚本文件时,攻击者便能获取服务器控制权。或者放置畸形文件,利用解压步伐的毛病发起攻击。此外,攻击者还可在压缩包中构造具有特别路径的文件,如../../../sensitive.txt,当 Web 应用解压时,可能导致路径穿越攻击,访问到服务器上本不应被访问的敏感文件。
   答应上传压缩包的场景
  攻击者可能会上传包含恶意文件的压缩包,服务器在解压时可能执行恶意代码。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  

2.文件下载的安全隐患

2.1路径解析毛病


Web 服务器在处理文件下载哀求时,若对文件路径的解析逻辑存在缺陷,就会产生路径解析毛病。部门 Web 服务器支持文件多重后缀名特性,攻击者利用这一特性构造恶意文件名,干扰服务器路径解析。
假设服务器答应下载example.jpg文件,攻击者构造文件名example.jpg../sensitive.txt。若服务器对路径解析不够严谨,在处理该文件名时,可能会错误地将../sensitive.txt文件下载给攻击者,导致敏感信息走漏。这种毛病的产生每每源于服务器对文件名中特别字符和路径分隔符的处理不当,使得攻击者能够通过经心构造文件名,突破服务器预期的文件访问范围。
   路径解析毛病
  1. 利用 Web 服务器支持文件多重后缀名的特性
  某些 Web 服务器支持文件多重后缀名(如 .php.html ),攻击者可以通过构造特别的文件名,绕过服务器的文件类型检查。
  毛病利用方式
  
  毛病的危害
  
  防御措施
  
  

2.2路径穿越攻击与任意文件读取毛病


路径穿越攻击是文件下载安全中的重大威胁。攻击者在文件下载哀求的路径参数中使用特别字符(如../),意图跳出应用步伐设定的文件目次,访问其他文件。若服务器未对路径参数进行严酷过滤和校验,攻击者就能实现任意文件读取毛病。
例如,在一个简单的文件下载功能中,URL 参数可能为download.php?file=example.txt,攻击者将其修改为download.php?file=../../../etc/passwd。若服务器未对file参数进行有用验证,就会将/etc/passwd文件(在 Linux 体系中存储用户账号信息)下载给攻击者,攻击者借此获取大量用户账号和暗码信息(若暗码未进行安全存储),对体系安全造成严峻粉碎。

2.3Nginx 配置不精确造成的路径穿越毛病


Nginx 作为一款广泛使用的 Web 服务器,若配置不当,极易引发路径穿越毛病。在 Nginx 的配置文件中,alias和root指令用于指定文件路径映射关系。若使用不当,如alias指令设置的路径末端缺少斜杠(/),可能导致服务器将用户哀求的路径错误地映射到非预期目次。攻击者通过构造特别路径哀求,
如/path/to/../sensitive/file,利用配置错误实现路径穿越攻击,访问服务器上的敏感文件,如网站的配置文件、数据库连接文件等,获取关键信息,进而对服务器发起进一步攻击。
(二)文件上传与下载的安全策略

1.文件上传安全

1.1 文件路径信息的安全

毛病利用方式


防御措施


1.2 文件内容的安全

毛病利用方式


防御措施


  2.文件包含毛病

2.1本地文件包含与远程文件包含

本地文件包含

攻击者通过构造恶意的文件路径,包含服务器上的本地文件,获取敏感信息。
远程文件包含

攻击者通过构造恶意的文件路径,包含远程服务器上的文件,实现跨站攻击。
毛病利用方式


防御措施


2.2用文件包含实现拒绝服务攻击

攻击者可以通过文件包含毛病,包含大量的文件,消耗服务器的资源,导致服务不可用。
毛病利用方式


防御措施


3.文件上传安全策略

3.1路径信息的安全考虑

   
  3.2文件内容的安全考虑

4.文件下载安全

4.1路径信息的安全考虑


4.2文件内容的安全考虑


(三)对象存储的安全题目

随着云计算技能的飞速发展,对象存储服务(如 Amazon S3、阿里云 OSS、腾讯云 COS 等)在 Web 应用中得到广泛应用。然而,对象存储也存在诸多安全题目需要高度关注。
总结

文件操作是 Web 应用中不可或缺的功能模块,但同时也是攻击者眼中的高代价目标。从文件上传、下载到文件包含、路径穿越,每一步都潜藏着巨大的安全风险。攻击者可以通过构造恶意文件、利用服务器的解析毛病等方式,实现对服务器的控制或窃取敏感信息。
作为开辟者和安全职员,我们需要高度重视文件操作的安全题目,采取严酷的防御措施,如文件类型检查、路径验证、内容扫描等,确保文件操作的安全性。同时,也需要不停学习新的安全技能和防护策略,以应对日益复杂的网络安全威胁通过。
深入学习《白帽子讲 Web 安全》中的文件操作章节,我们能够更全面地熟悉文件操作中的安全风险,并把握相应的防护措施,为 Web 应用的安全性保驾护航。

喜欢的点点赞和关注,一起进步


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4