【Pikachu 靶场精讲】Unsafe filedownload—前置知识

admin 2023年12月15日17:16:38评论29 views字数 1492阅读4分58秒阅读模式

什么是文件下载漏洞

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

攻击者可以下载服务器的任意文件,如配置文件等等,可用得到的代码进行进一步审计,扩大攻击危害

漏洞利用条件

  • 存在读取文件的函数(存在文件下载功能,从 HTTP 流中接收文件名)
  • 读取的文件路径可控(无校验或校验可被绕过)
  • 最终输出文件内容

文件下载的方式

  1. 前端直接指定目录下载
<a href=”http://www.a.com/xxx.php”>下载</a>
  1. 使用 HTTP Header 头下载
<?php
    $filename = $_GET['filename'];
    echo '<h1>开始下载文件</h1><br /><br />';
    echo file_get_contents($filename);

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

常见的敏感文件

常见的三种敏感文件利用方式为以下三种:

  • 信息搜集
  • 下载配置文件
  • 下载源码进行审计

Windows(服务器)常见敏感文件路径:

C:boot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件
C:Windowsrepairsam //存储系统初次安装的密码
C:Program Filesmysqlmy.ini //Mysql配置
C:Program Filesmysqldatamysqluser.MYD //Mysql root
C:Windowsphp.ini //php配置信息
C:Windowsmy.ini //Mysql配置信息
C:Windowswin.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参数

总结

文件下载的漏洞原理和利用方式较为简单,基本还是使用../进行目录穿越,跳出程序本身的限制目录实现来下载任意文件,其重点依然在于绕过安全检测和定位敏感信息位置,以下是个人认为学习和参考的文章

  • WEB安全梳理-文件下载
  • 浅析文件读取与下载漏洞

原文始发于微信公众号(天禧信安):【Pikachu 靶场精讲】Unsafe filedownload—前置知识

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月15日17:16:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Pikachu 靶场精讲】Unsafe filedownload—前置知识https://cn-sec.com/archives/2303501.html

发表评论

匿名网友 填写信息