您当前的位置: 首页 > 

星球守护者

暂无认证

  • 5浏览

    0关注

    641博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

任意文件下载漏洞知识点

星球守护者 发布时间:2021-05-08 12:57:09 ,浏览量:5

文章目录
      • 资料下载
      • 任意文件下载
      • 漏洞描述
      • 利用条件
      • 漏洞危害
      • 漏洞发现
          • 链接上
          • 参数上
          • 案例
      • 漏洞利用
          • 利用原理
          • windows路径
          • linux路径
      • 修复建议
      • 摘抄

资料下载

点击 下载

https://download.csdn.net/download/qq_41901122/18467497
任意文件下载 漏洞描述

文件下载处由于未对下载路径进行过滤,利用路径回溯符…/跳出程序本身的限制目录实现来下载任意文件,如下载系统密码文件等!

利用条件
  • 存在读文件的函数
  • 读取文件的路径用户可控且未校验或校验不严
  • 输出了文件内容
漏洞危害
  • 可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等。
  • 可用得到的代码进一步代码审计,得到更多可利用漏洞
  • 任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。
漏洞发现
  • 网站URL中存在下载参数,并且未进行过滤…/…/…/字符,且输出了文件内容
链接上
download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=
参数上
&RealPath=
&FilePath=
&filepath=
&Filepath=
&Path=
&path=
&inputFile=
&Inputfile=
&url=
&urls=
&Lang=
&dis=
&data=
&Data=
&readfile=
&filep=
&src=
&menu=
META-INF
WEB-INF
案例
  • 任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。
  • 但是有的时候我们可能根本不知道网站所处的环境,以及网站的路径,这时候我们只能利用./ …/来逐层猜测路径,让漏洞利用变得繁琐
  • 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(如…/…/…/etc/passwd),则很有可能会直接将该指定的文件下载下来。从而导致后台敏感信息(密码文件、源代码等)被下载。
index.php?f=../../../../../../etc/passwd
index.php?f=../index.php
index.php?f=file:///etc/passwd
readfile.php?file=/etc/passwd
readfile.php?file=../../../../../../../../etc/passwd
readfile.php?file=../../../../../../../../etc/passwd%00(00截断)

注:

  • 当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞
  • 显示源代码,则是文件查看漏洞
  • 提示下载,则是文件下载漏洞
漏洞利用 利用原理
  • (信息收集信息>猜路径 >>下载配置文件/代码文件 >> 利用服务器软件漏洞> shell> 提权)
  • 任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。
  • 下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
  • 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
  • 下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器
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配置信息
C:\Windows\win.ini    //Windows系统的一个基本系统配置文件
linux路径
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts   //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/usr/local/app/php5/lib/php.ini    //PHP配置文件
/etc/my.cnf   //mysql配置文件
/etc/httpd/conf/httpd.conf   //apache配置文件
/root/.bash_history   //用户历史命令记录文件
/root/.mysql_history   //mysql历史命令记录文件
/proc/mounts    //记录系统挂载设备
/porc/config.gz   //内核配置文件
/var/lib/mlocate/mlocate.db    //全文件路径
/porc/self/cmdline  //当前进程的cmdline参数
修复建议
  • 对下载路径进行过滤,如下载前对传入的参数进行过滤,并且对下载文件类型进行检查,是否是允许下载的类型

  • 过滤.(点),使用户在url中不能回溯上级目录

  • 正则严格判断用户输入参数的格式

  • php.ini配置open_basedir限定文件访问范围

摘抄

很多语言都是假的,

只有一起经历过的才是真的。

– 柴静 《看见》

关注
打赏
1662051426
查看更多评论
立即登录/注册

微信扫码登录

0.1259s