【DoraBox实战】————9、任意文件读取

任意文件读取

在web安全中,任意文件读取漏洞是非常常见的一种漏洞,属于文件操作类漏洞,一般常见于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:windowswin.ini
或者构造
http://www.download.com/index.php?filename=/etc/shadow
然后去访问,结果攻击者就读取到了win.ini内容和操作系统shadow,操作系统的shadow文件是保存操作系统密码串的文件,这样攻击者就可以对密码串进行破解,获取到操作系统的SSH密码。
以上例子说明任意文件读取/下载的漏洞产生原理主要就是对参数未进行合法性校验造成的。另外还有一些如PHP语言的PHP流input和filter以及data的URLs远程文件包含漏洞造成的任意文件读取漏洞。

任意文件读取利用方式

任意文件读取/下载漏洞的利用方式比较简单,但也要看web系统的实际情况来读取下载文件。

  • 对于weblogic中间件,如果攻击者想通过任意文件读取漏洞Getshell,那攻击者可以利用任意文件读取漏洞下载weblogic的密码文件和filter,然后破解console控制台密码,部署shell;
  • 对于tomcat中间件,利用任意文件下载漏洞读取控制台密码文件tomcat-users.xml ,下载到管理台密码后就可以部署shell了

常见的任意文件下载/读取漏洞的利用方式有以下几种:

  • 读取程序源代码(如密码配置文件)
  • 读取程序配置文件(如数据库连接文件)
  • 读取操作系统关键文件(如/etc/sadow,/root/.bash_history等文件)
  • 读取运维配置文件(redis/rsync/ftp/ssh客户端数据等)
  • 读取中间件配置文件(weblogic/tomcat等密码文件,apache的httpd.conf文件)
  • 下载web日志文件(获取网站后台/上传文件等)
  • 结合SSRF获取内网机器文件

实战测试

下面以DoraBox中的任意文件读取漏洞为例做漏洞的分析与演示:

分析:从源代码中可以看到如果对于读取的文件存在,那么直接将其内容输出即可,存在任意文件读取漏洞

利用:

只要知道路径就可以读取:

任意文件读取常用的路径:

Windows:

C:\boot.ini  //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml  //IIS配置文件
C:\Windows\repair\sam  //存储系统初次安装的密码
C:\Program Files\mysql\my.ini  //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD  //Mysql root
C:\Windows\php.ini  //php配置信息
C:\Windows\my.ini  //Mysql配置信息

Linux:

/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts
/etc/passwd
/etc/shadow
/etc/my.cnf
/etc/httpd/conf/httpd.conf
/root/.bash_history
/root/.mysql_history
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts
/porc/config.gz

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值