zoukankan      html  css  js  c++  java
  • 任意文件读取和下载

    任意文件读取和下载

    原理

    可以任意读取服务器上部分 或者全部文件的漏洞,攻击者利用此漏洞可以读 取服务器敏感文件如/etc/passwd,/etc/ sadow,web.config。漏洞一般存在于文件下载 参数,文件包含参数。主要是由于程序对传入的 文件名或者文件路径没有经过合理的校验,从而 操作了预想之外的文件,导致意外的文件泄露。

    利用方式

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

    系统文件

    window

    C:oot.ini //查看系统版本
    C:WindowsSystem32inetsrvMetaBase. xml //IIS配置文件
    C:Windows
    epairsam //存储系统初次安装的密码
    C:Program Filesmysqlmy.ini //Mysql配 置C:Program Filesmysqldatamysqluser. MYD //Mysql root C:Windowsphp.ini //php配置信息 C:Windowsmy.ini //Mysql配置信息
    

    Linux

    .bash_history` # 历史中可能带着用户的密码 ( 遇到过现实案例,是输错的情况下参数的,比如没 输入 su 却以为自己输了 su)
    /etc/passwd # 用户情况 
    /etc/shadow # 直接 John the Ripper 
    /etc/hosts # 主机信息,通常配置了一些内网 域名
    /root/.bash_history //root的bash历史记录
    /root/.ssh/authorized_keys /root/.mysql_history //mysql的bash历史记录
    /root/.wget-hsts /opt/nginx/conf/nginx.conf //nginx的配置文件
    /var/www/html/index.html /etc/my.cnf /etc/httpd/conf/httpd.conf //httpd的配置文件
    /proc/self/fd/fd[0-9]*(文件标识符) 
    /proc/mounts /porc/config.gz /proc/sched_debug // 提供cpu上正在运行的进程信息,可以获得进程的pid号,可以配合后面需要pid的利用 
    /proc/mounts // 挂载的文件系统列表 
    /proc/net/arp //arp表,可以获得内网其他机器的地址
    /proc/net/route //路由表信息 
    /proc/net/tcp and /proc/net/udp // 活动连接的信息
    /proc/net/fib_trie // 路由缓存
    /proc/version // 内核版本
    /proc/[PID]/cmdline // 可能包含有用的路径信息
    /proc/[PID]/environ // 程序运行的环境变量信息,可以用来包含getshell
    /proc/[PID]/cwd // 当前进程的工作目录
    /proc/[PID]/fd/[#] // 访问file descriptors, 某写情况可以读取到进程正在使用的文件,比如 access.log /root/.ssh/id_rsa /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys /etc/ssh/sshd_config /var/log/secure /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/syscomfig/network-scripts/ifcfg-eth1
    /usr/local/tomcat/conf/tomcat-users. xml # tomcat 用户配置文件 
    /root/.bashrc # 环境变量 
    /root/.bash_history # 还有root外的其他用户
    /root/.viminfo # vim 信息
    /root/.ssh/id_rsa # 拿私钥直接ssh 
    /proc/xxxx/cmdline # 进程状态枚举 xxxx 可以为0000-9999 使用burpsuite 数据库 config 文件 web 日志 access.log, error.log /var/lib/php/sess_PHPSESSID # 非常规问题 session 文件 
    /proc/net/arp /proc/net/tcp /proc/net/udp /proc/net/dev
    

    防御

    1.php.ini 配置open_basedir
    2.用户输入配置白名单 
    s3.不允许包含 ../
    
  • 相关阅读:
    Android AndroidManifest 清单文件以及权限详解!【转】
    java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选
    eclipse中的两种Jre 及 Jre与Jdk的区别
    LAMP_yum安装
    CentOS7修改主机名(hostname)
    Linux下U盘挂载
    mount命令
    vmware虚拟机无法连接网络
    shell中awk printf的用法
    scp命令
  • 原文地址:https://www.cnblogs.com/liyu8/p/14359161.html
Copyright © 2011-2022 走看看