任意文件读取与下载漏洞学习

任意文件读取漏洞是由于程序对客户端输入参数未做校验,允许攻击者读取服务器敏感文件。常见于PHP、Java和Python语言,危害包括代码、配置文件、系统信息泄露。漏洞利用方式包括读取源代码、配置文件、操作系统关键文件等。防御措施包括限制文件访问范围、白名单配置和过滤非法字符。
摘要由CSDN通过智能技术生成

原理:

任意文件读取漏洞属于文件操作类漏洞,一般常见于PHP/java/python语言中。任意文件读取漏洞,就是可以任意读取服务器上部分或者全部文件的漏洞,攻击者利用此漏洞可以读取服务器敏感文件如/etc/passwd,/etc/sadow,web.config。漏洞一般存在于文件下载参数,文件包含参数。主要是由于程序对传入的文件名或者文件路径没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露。

  任意文件读取漏洞的原理其实就是由于程序对客户端传入的参数未作合法性的检验造成的,举了例子:在业务常见中存在一个url:http://www.download.com/index.php?filename=code.php。此URL的业务功能主要是包含进code.php文件中的程序代码,然后在index.php文件中执行相关的代码,但是由于filename参数未作校验,攻击者可以构造url :http://www.download.com/index.php?filename=c:\windows\win.ini 或者构造http://www.download.com/index.php?filename=/etc/shadow ,然后去访问,结果攻击者就读取到了win.ini内容和操作系统shadow,对于操作系统的shadow文件,大家应该比较清楚,是保存操作系统密码串的文件,这样攻击者就可以对密码串进行破解,获取到操作系统的SSH密码。

产生的原因:

1.存读取文件的函数

2.读取文件的路径用户可控,并且未校验或者校验不严

3.输出了文件内容

危害:

  通过任意文件读取/下载,可以读取/下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息等

任意文件读取

<?php            

$filename=”test.txt”;

readfile($filename);

?>

<?php

$filename=”test.txt”;

Echo fiile_get_contents($filename);

?>

文件读取函数:readfile()、file_get_contents()、fopen()中,$filename没有经过校验或者校验不合格,用户可控制变量读取任意文件,如/etc/passwd、./index.php。

 

文件下载

      ·<a href=”http://www.a.com/ccc.rar”>下载</a>

 

 

在上述代码中,$filename 没有经过校验,或者校验不合格,用户可以控制这个变量读取任意的文件,比如/etc/passwd、../index.php等等。这样就造成了任意文件下载漏洞

 

利用方式:

  任意文件读取/下载漏洞的利用方式比较简单,但也要看web系统的实际情况来读取下载文件,对于weblogic中间件,如果攻击者想通过任意文件读取漏洞Getshell,那攻击者可以利用任意文件读取漏洞下载weblogic的密码文件和filter,然后破解console控制台密码,部署shell;对于tomcat中间件,利用任意文件下载漏洞读取控制台密码文件tomcat-users.xml

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值