任意文件读取漏洞

所谓文件读取漏洞,就是攻击者通过一些手段可以读取服务器上开发者不允许读到的文件。从整个攻击过程来看,它常常作为资产信息搜集的一种强力的补充手段,服务器的各种配置文件、文件形式存储的密钥、服务器信息(包括正在执行的进程信息)、历史命令、网络信息、应用源码及二进制程序都在这个漏洞触发点被攻击者窥探。

文件读取漏洞常常意味着被攻击者的服务器即将被攻击者彻底控制。当然,如果服务器严格按照标准的安全规范进行部署,即使应用中存在可利用的文件读取漏洞,攻击者也很难拿到有价值的信息。文件读取漏洞在每种可部署Web应用的程序语言中几乎都存在。当然,此处的“存在”本质上不是语言本身的问题,而是开发者在进行开发时由于对意外情况考虑不足所产生的疏漏。
通常来讲,Web应用框架或中间件的开发者十分在意代码的可复用性,因此对一些API接口的定义都十分开放,以求尽可能地给二次开发者最大的自由。而真实情况下,许多开发人员在进行二次开发时过于信任Web应用框架或中间件底层所实现的安全机制,在未仔细了解应用框架及中间件对应的安全机制的情况下,便轻率地依据简单的API文档进行开发,不巧的是,Web应用框架或中间件的开发者可能未在文档中标注出API函数的具体实现原理和可接受参数的范围、可预料到的安全问题等。

业界公认的代码库通常被称为“轮子”,程序可以通过使用这些“轮子”极大地减少重复工作量。如果“轮子”中存在漏洞,在“轮子”代码被程序员多次迭代复用的同时,漏洞也将一级一级地传递,而随着对底层“轮子”代码的不断引用,存在于“轮子”代码中的安全隐患对于处在“调用链”顶端的开发者而言几乎接近透明。
对于挖掘Web应用框架漏洞的安全人员来说,能否耐心对这条“调用链”逆向追根溯源也是一个十分严峻的挑战。

另外,有一种任意文件读取漏洞是开发者通过代码无法控制的,这种情况的漏洞常常由Web Server自身的问题或不安全的服务器配置导致。Web Server运行的基本机制是从服务器中读取代码或资源文件,再把代码类文件传送给解释器或CGI程序执行,然后将执行的结果和资源文件反馈给客户端用户,而存在于其中的众多文件操作很可能被攻击者干预,进而造成诸如非预期读取文件、错误地把代码类文件当作资源文件等情况的发生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值