• 任意文件下载(读取)


    目录

    漏洞简介

    产生原因

    漏洞利用

    常见敏感文件路径

    Windows系统

    Linux系统

    Web应用

    PHP

    ASP 

    ASPX

    JSP

    漏洞利用方法

    注意事项

    漏洞测试


    漏洞简介

    一些网站由于业务需求,往往需要提供文件查看或下载功能。一般来说在文件下载或查看功能处,当文件名参数可控,且系统未对参数进行严格过滤或者过滤不严格时,就能够实现下载服务器上的任何文件,产生任意文件下载漏洞,黑客可以利用( ../ )跳出程序本身的限制目录实现下载任意文件。

    产生原因

    • 提供文件下载功能,并接受相关参数变量
    • 使用读取文件的函数
    • 未对相关参数做校验或者控制不严格

    漏洞利用

    1.存在下载功能的功能点

    2.Google hacking 搜索 

    • inurl:"readfile.php?file="
    • inurl:"downfile.php?filename="

    常见敏感文件路径

    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\win.ini                                                              Windows系统配置文件

    Linux系统

    /root/.ssh/authorized_keys                                                  公钥文件

    /root/.ssh/id_rsa                                                                  私钥文件

    /root/.ssh/known_hosts                                                       记录每个访问计算机用户的公钥

    /etc/passwd                                                                         保存系统中所有的用户信息

    /etc/shadow                                                                         保存系统中所有用户的密码信息

    /etc/my.conf                                                                         mysql配置文件

    /etc/httpd/conf/httpd.conf                                                     Apache配置文件

    /root/.bash_history                                                               用户终端历史命令记录文件

    /root/.mysql_history                                                             mysql历史命令记录文件

    /var/lib/mlocate/mlocate.db                                                  全文件路径

    /usr/local/app/apache2/conf/httpd.conf                                apache2默认配置文件

    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf            虚拟网站设置

    /usr/local/app/php7/lib/php.ini                                               php相关配置文件

    /etc/php5/apache2/php.ini                                                    ubuntu系统的默认路径

    Web应用

    PHP

    • 获取inc/config.php文件,获取数据库连接字符串中的口令信息

    ASP 

    • 获取inc/config.asp文件,获取数据库连接字符串口令,得到数据库口令 

    ASPX

    • 获取网站根目录web.config文件,获取数据库连接字符串中的口令信息;
    • 获取bin/*.dll文件,获取网站源码 (不完整代码) , 使用.NET reflector 工具打开编译后的dll文件;

    JSP

    • 获取conf/tomcat-user.xml,获取tomcat管理界面的口令信息,上传war包getshell
    • 获取WEB-INF/Web.xml文件,获取数据库连接字符串中的口令信息

    漏洞利用方法

    虽然我们不知道网站路径,但是我们可以使用" ../.../../ "进行逐层猜测网站路径,案例如下:

    • download.php?file=../../../etc/passwd
    • download.php?file=../../../../index.php
    • download.php?f=file:///etc/passwd
    • readfile.php?f=file:///etc/passwd
    • readfile.php?file=../../../etc/passwd

    注意事项

    • 注意../的数量,他代表查询目录父目录的数量
    • 遇到任意文件下载漏洞是,需要至注意下载权限的问题,这个权限能决定下载文件的范围
    • 某些网站提交方式为POST请求,需要使用Burp suite进行抓包
    • 过滤字符或者字母可以通过编码方式绕过

    漏洞测试

    1.通过Google语法随便找一个网站进行测试

     

    2.可以看到成功下载passwd文件,已提交漏洞平台。

     

  • 相关阅读:
    数据结构——排序算法——归并排序
    ORA-00257:archiver error.Connect internal only,until freed.
    c:Bubble Sort
    【限流与Sentinel超详细分析】
    LeetCode50天刷题计划第二季(Day 24 — LRU 缓存(8.00- 8.50)对链表进行插入排序(11.30-11.50)
    【JUC系列-06】深入理解Semaphore底层原理和基本使用
    iperf+natapp做4g模块网络带宽测试
    springcloud学习笔记:通过openFeign实现微服务接口远程调用
    css常用选择器
    谱本征正交分解 (SPOD)附matlab代码
  • 原文地址:https://blog.csdn.net/smli_ng/article/details/126519966