精华内容
下载资源
问答
  • 利用任意文件下载漏洞自动循环下载并反编译类文件获得网站源码 注意事项 1. 使用过程中的 bug 和优化建议欢迎提 issue 2. 程序运行请先安装 requirements.txt 中的 python 模块, 并配置好 java 环境变量 3. 程序仅...
  • 任意文件下载漏洞

    千次阅读 2020-09-22 23:12:56
    文章目录任意文件下载0x01 漏洞介绍0x02 漏洞产生原因0x03 漏洞发现Google search一般链接形式包含参数利用方法WEB-INF0x04 漏洞绕过0x05 漏洞利用常见利用文件路径WindowsLinux0x06 漏洞判断0x07 漏洞验证0x08 漏洞...

    任意文件下载

    0x01 漏洞介绍

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

    任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。但是有的时候我们可能根本不知道网站所处的环境,以及网站的路径,这时候我们只能利用./ …/来逐层猜测路径,让漏洞利用变得繁琐。
    此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(如…/…/…/etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
    所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。

    0x02 漏洞产生原因

    • 有读取文件的函数
    • 读物文件的路径用户可控,且没有经过校验,或者校验不严格
    • 输出文件内容
    • 一个正常的网站,存在一个下载文件的功能,同时还会从浏览器接收文件名字

    文件下载的两种方式
    1、直接下载:

    <a href=”http://www.a.com/xxx.rar”>下载</a>
    1
    

    2、增加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));
    ?>
    

    0x03 漏洞发现

    如下代码一个正常的网站,存在一个下载文件的功能,同时还会从浏览器接收文件名字,将存在任意文件下载漏洞。

    <?php
      $filename = $_GET['filename'];
      echo '<h1>讲开始下载文件!</h1><br /><br />';
      echo **file_get_contents**($filename);     //**无过滤导致*****\*漏洞函数\**** **file_get_contents 函数把整个文件读入一个字符串中并输出**
    
      header('Content-Type: imgage/jpeg');
      header('Content-Disposition: attachment; filename='.$filename);
      header('Content-Lengh: '.filesize($filename));
    
    ?>
    

    如何发现(网站URL中存在下载参数,并且未进行过滤…/…/…/字符,且输出了文件内容)

    Google search

    • inurl : readfile.php?file=
    • inurl : download.php?file=

    一般链接形式

    • 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

    利用方法

    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文件时,若是文件被解析则是文件包含漏洞,

    若显示源码或提示下载则是文件查看与下载漏洞

    WEB-INF

    WEB-INF是Java的WEB应用的安全目录。

    WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 *.class文件,这些 *.class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。

    这也是我们为什么一开始就直接查看WEB-INF/web.xml的原因

    这里总结一下WEB-INF常用的目录或文件

    /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
    /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
    /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
    /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
    /WEB-INF/database.properties:数据库配置文件
    漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码
    

    0x04 漏洞绕过

    • 若过滤字符或字母可尝试编码绕过

    • 利用 …/…/

    but有些代码会进行过滤(具体要根据代码进行测试),会把 …/ 置空
    利用…// 代替 …/
    利用…// 代替 /

    具体怎么绕过还是得看代码是怎么写的

    • 注意
      ①.注意 …/ 的数量,他代表查询目录父目录的数量
      ②.当我们遇到一个任意文件下载漏洞时首先要注意下载的权限问题。因为权限决定我们能下载的文件范围。
      ③.有些网站(主要是针对系统)并不会在URL里显示给你看,这时候你需要抓包,从数据包里修改路径,达到任意文件读取。

    0x05 漏洞利用

    利用:(信息收集信息>猜路径 >>下载配置文件/代码文件 >> 利用服务器软件漏洞> shell> 提权)
    1.任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。

    当遇到一个任意文件下载时,我们的一般利用思路:

    1. 下载常规的配置文件,例如:sshweblogicftpmysql等相关配置

    2. 下载各种**.log**文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门

    3. 下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

      尝试读取**/root/.bash_history看自己是否具有root权限。如果没有的话,我们只能按部就班的利用*…/来回跳转读取一些.ssh*下的配置信息文件,读取mysql下的.bash_history文件。来查看是否记录了一些可以利用的相关信息,然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。

    • java+Oracle环境

      可以先下载**/WEB-INF/classes/applicationContext.xml文件,这里面记载的是web服务器的相应配置,然后下载/WEB-INF/classes/xxx/xxx/ccc.class对文件进行反编译,然后搜索文件中upload关键字看是否存在一些api接口,如果存在的话我们可以本地构造上传页面用api**接口将我们的文件传输进服务器

    • 如果具有root权限

      在linux中有这样一个命令locate是用来查找文件或目录的,他不搜索具体目录,而是搜索一个数据库**/var/lib/mlocate/mlocate.db**。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次。当我们不知道路径是什么的情况下,这个可以说是一个和武器了,我们利用任意文件下载漏洞mlocate.db文件下载下来,利用locate命令将数据输出成文件,这里面包含了全部的文件路径信息。

      locate读取方法:locate mlocate.db admin //可以将mlicate.db中包含admin文件名的内容全部输出来

      常见利用文件路径

    Windows

    (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 //如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去

    • /root/.ssh/id_rsa //ssh私钥,ssh公钥是id_rsa.pub

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

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

    • /etc/passwd //账户信息

    • /etc/shadow //账户密码文件

    • /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参数

    • /usr/local/app/php5/lib/php.ini //PHP配置文件

    0x06 漏洞判断

    参数f的参数值为PHP文件时:

    1.文件被解析,则是文件包含漏洞
    2.显示源代码,则是文件查看漏洞
    3.提示下载,则是文件下载漏洞

    0x07 漏洞验证

    xxx.php?f=../../../../../../etc/passwd
    
    xxx.php?f=../index.php
    
    xxx.php?f=file:///etc/passwd
    12345
    

    参数f的参数值为PHP文件时:

      1.文件被解析,则是文件包含漏洞
    
      2.显示源代码,则是文件查看漏洞
    
      3.提示下载,则是文件下载漏洞
    

    0x08 漏洞防护

    通用

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

    文件下载漏洞修复

    • 将下载区独立出来,放在项目路径外,给每个下载资源固定的URL,而不是所有的下载资源都是统一的URL:http://www.test.com/download?filename=文件名
    • 净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
    • web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot应用。由chroot创造出的那个根目录,叫做“chroot监狱”(所谓”监狱”就是指通过chroot机制来更改某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全。
      详细具体chroot的用法,可参考:http://blog.csdn.net/frozen_fish/article/details/2244870
    • 任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。
    • 要下载的文件地址保存至数据库中。
    • 文件路径保存至数据库,让用户提交文件对应ID下载文件。
    • 用户下载文件之前需要进行权限判断。
    • 文件放在web无法直接访问的目录下。
    • 不允许提供目录遍历服务。
    • 公开文件可放置在web应用程序下载目录中通过链接进行下载。
    • 记录文件下载日志。

    0x09 文件路径汇总

    / proc / sched_debug
    / proc /安装
    / proc / net / arp
    / proc / net / route
    / proc / net / tcp
    / proc / net / udp
    / proc / net / fib_trie
    / proc /版本
    / proc /自我/ cmdline
    / proc / self / stat
    / proc / self / status
    / proc /自我/环境
    / proc /版本
    / proc / cmdline
    / proc / self / cwd
    / proc / self / fd / 0
    / proc / self / fd / 1
    / proc / self / fd / 2
    / proc / self / fd / 3
    / proc / self / fd / 4
    / proc / self / fd / 5
    / proc / self / fd / 6
    / proc / self / fd / 7
    / proc / self / fd / 8
    / proc / self / fd / 9
    / proc / self / fd / 10
    / proc / self / fd / 11
    / proc / self / fd / 12
    / proc / self / fd / 13
    / proc / self / fd / 14
    / proc / self / fd / 15
    / proc / self / fd / 16
    / proc / self / fd / 17
    / proc / self / fd / 18
    / proc / self / fd / 19
    / proc / self / fd / 20
    / proc / self / fd / 21
    / proc / self / fd / 22
    / proc / self / fd / 23
    / proc / self / fd / 24
    / proc / self / fd / 25
    / proc / self / fd / 26
    / proc / self / fd / 27
    / proc / self / fd / 28
    / proc / self / fd / 29
    / proc / self / fd / 30
    / proc / self / fd / 31
    / proc / self / fd / 32
    / proc / self / fd / 33
    / proc / self / fd / 34
    / proc / self / fd / 35
    / proc / sched_debug
    / proc /安装
    / proc / net / arp
    / proc / net / route
    / proc / net / tcp
    / proc / net / udp
    / proc / net / fib_trie
    / proc /版本
    /etc/httpd/conf/httpd.conf
    /etc/rc.local
    /usr/local/apache/conf/httpd.conf
    /var/www/html/apache/conf/httpd.conf
    /home/httpd/conf/httpd.conf
    /usr/local/apache2/conf/httpd.conf
    /usr/local/httpd/conf/httpd.conf
    /etc/apache/httpd.conf
    /usr/local/lib/php.ini
    /etc/hosts.deny
    / etc / bashrc
    / etc / group
    /etc/httpd/httpd.conf
    / etc / issue
    / etc / issue / net
    / etc / ssh / ssh_config
    / etc / termcap
    /etc/xinetd.d
    / etc / mtab
    /etc/vsftpd/vsftpd.conf
    /etc/xinetd.conf
    / etc / protocols
    /etc/logrotate.conf
    /etc/ld.so.conf
    / etc / wgetrc
    / etc / passwd
    / etc /阴影
    / etc / inputrc
    /etc/resolv.conf
    / etc / sysconfig / network
    /etc/sendmail.cf
    /etc/sendmail.cw
    /usr/local/app/apache2/conf/httpd.conf
    /usr/local/apache2/conf/httpd.conf
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf
    /usr/local/app/php5/lib/php.ini
    / etc / sysconfig / iptables
    /etc/rsyncd.conf
    / etc / sysconfig / network-scripts / ifcfg-eth0
    / etc / redhat-release
    / var / spool / cron / crontabs / root
    /root/.pgpass
    /root/.psql_history
    / etc / fstab
    /etc/host.conf
    / etc / motd
    /etc/ld.so.conf
    / etc / sysconfig / network-scripts / ifcfg-eth0
    / etc / sysconfig / network-scripts / ifcfg-eth1
    /www/php/php.ini
    /www/php4/php.ini
    /www/php5/php.ini
    /www/conf/httpd.conf
    /www/htdocs/index.php
    /etc/phpmyadmin/config.inc.php
    /etc/mysql/my.cnf
    /etc/httpd/conf.d/php.conf
    /etc/httpd/conf.d/httpd.conf
    / etc / httpd / logs / error_log
    /etc/httpd/logs/error.log
    / etc / httpd / logs / access_log
    / var / log / error_log
    /var/log/error.log
    / var / log / access_log
    /var/log/access.log
    /etc/init.d/httpd
    /etc/init.d/mysql
    /xampp/apache/bin/php.ini
    /xampp/apache/conf/httpd.conf
    /NetServer/bin/stable/apache/php.ini
    /home2/bin/stable/apache/php.ini
    /var/log/mysql.log
    /var/log/mysqlderror.log
    /var/log/mysql/mysql.log
    /var/log/mysql/mysql-slow.log
    /var/mysql.log

    任意文件读取漏洞

    任意文件读取是属于文件操作漏洞的一种,一般任意文件读取漏洞可以读取配置信息甚至系统重要文件。严重的话,就可能导致SSRF,进而漫游至内网。

    漏洞产生原因

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

    任意文件读取

    <?php            
    $filename=”test.txt”;
    readfile($filename);
    ?>
    1234
    <?php
    $filename=”test.txt”;
    echo file_get_contents($filename);
    ?>
    1234
    

    文件读取函数

    readfile()file_get_contents()fopen()中,$filename没有经过校验或者校验不合格,用户可控制变量读取任意文件,如/etc/passwd./index.php/config.ini

    漏洞验证

    任意文件读取验证

    示例代码:

    <?php
    $filename=$_GET['f'];
    echo file_get_contents($filename);
    ?>
    

    测试:

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

    在这里插入图片描述

    readfile.php?f=../index.txt
    

    在这里插入图片描述
    file://伪协议 ,读取文件内容

    readfile.php?f=file:///etc/passwd
    

    在这里插入图片描述

    展开全文
  • 文章目录资料下载任意文件下载漏洞描述利用条件漏洞危害漏洞发现链接上参数上案例漏洞利用利用原理windows路径linux路径修复建议摘抄 资料下载 点击 下载 https://download.csdn.net/download/qq_41901122/18467497 ...

    资料下载

    点击 下载

    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限定文件访问范围

    摘抄


    很多语言都是假的,

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

    – 柴静 《看见》


    展开全文
  • 渗透测试-任意文件下载漏洞

    千次阅读 2020-04-13 21:01:54
    任意文件下载概述 任意文件下载利用 任意文件下载挖掘 任意文件下载防御 一、任意文件下载概述 ...文件下载漏洞是指文件下载功能没有对下载的文件类型、目录做合理严谨的过滤,导致用户可以下载服务器的任意文件...
    1. 任意文件下载概述
    2. 任意文件下载利用
    3. 任意文件下载挖掘
    4. 任意文件下载防御

    一、任意文件下载概述

    文件下载功能

    许多网站都具备文件下载功能,某些文件下载功能实现过程是,根据参数filename的值,获得该文件在网站上的绝对路径,读取文件内容,发送给客户端进行下载。

    什么是任意文件下载漏洞

    文件下载漏洞是指文件下载功能没有对下载的文件类型、目录做合理严谨的过滤,导致用户可以下载服务器的任意文件。

    本地实现简单文件下载功能并演示漏洞
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、任意文件下载利用

    漏洞利用

    • 获得站点源码(黑盒 -> 白盒)
    • 获得站点与中间件配置文件
    • 获得应用于系统配置文件(ssh、mysql)

    Web应用
    在这里插入图片描述

    应用、系统配置文件
    在这里插入图片描述

    三、任意文件下载挖掘

    漏洞发现
    在这里插入图片描述

    漏洞验证
    在这里插入图片描述

    四、任意文件下载防御

    任意文件下载漏洞防御

    • 下载路径不可控,而是程序自动生成后保存在数据库中,根据ID进行下载
    • 对参数做严格的过滤,不能进行目录遍历(穿越)

    在这里插入图片描述
    warning :未经授权,不得转载
    声明:本文旨在为学习网络信息安全的同学提供指引帮助,维护网络空间的安全
    有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug
    知乎:叄贰壹
    简书:带只拖鞋去流浪

    展开全文
  • 什么是任意文件下载漏洞 文件下载漏洞是指文件下载功能没有对下载的文件类型、目录做合理严谨的过滤,导致用户可以下载服务器的任意文件任意文件下载漏洞的危害 用户可以任意下载文件,例如脚本、代码服务器配置...

    什么是任意文件下载漏洞

    文件下载漏洞是指文件下载功能没有对下载的文件类型、目录做合理严谨的过滤,导致用户可以下载服务器的任意文件。

    任意文件下载漏洞的危害

    用户可以任意下载文件,例如脚本、代码服务器配置文件等。利用得到的代码进行审计分析有可能得到其它漏洞来进行攻击

    任意文件下载漏洞如何利用

    Google hacking上看

    inurl:"readfile.php?file="
    

    从链接上看:

    download.php?path=
    download.php?file=
    down.php?file=
    data.php?file=
    readfile.php?file=
    read.php?filename=
    

    从参数上看 :

    &readpath=
    &filepath=
    &Path=
    &inputfile=
    &url=
    &Lang=
    &dis=
    &data=
    &readfile=
    &menu=
    META-INF=
    WEB-INF
    

    漏洞验证:

    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截断)
    

    整理了一些下载利用文件

    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  //如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去
    
    /root/.ssh/id_rsa  //ssh私钥,ssh公钥是id_rsa.pub
    
    /root/.ssh/id_ras.keystore //记录每个访问计算机用户的公钥
    
    /root/.ssh/known_hosts //记录每个访问计算机用户的公钥
    
    /etc/passwd //账户信息
    
    /etc/shadow  //账户密码文件
    
    /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限定文件访问范围
    下载路径不可控,而是程序自动生成后保存在数据库中,根据ID进行下载
    

    下面利用buuctf的Easy Java来说明一下
    打开题目是一个登录框本以为是登陆,试了几次不行,打开源码发现异样
    在这里插入图片描述

    猜测可能是文件下载漏洞,在get上传参没用,就抓包试了一下发现是post传参
    在这里插入图片描述
    根据题目easy java,先下载网站配置文件查看一下根目录WEB-INF/web.xml

    在这里插入图片描述
    发现flag字样说明方向应该是对的,又知java存在类.class,所以得出路径WEB-INF/classes/com/wm/ctf/FlagController.class
    在这里插入图片描述
    得到一串base64解码得到flag
    在这里插入图片描述
    参考文章:
    https://www.cnblogs.com/zhaijiahui/p/8459661.html

    展开全文
  • 下载服务器任意文件,如脚本代码、服务及系统配置文件等,进一步利用获取的信息进行更大的危害。 可用得到的代码进一步代码审计,得到更多可利用漏洞 实验环境:webug靶场 主页 BP抓包 我们把url的路径改为,发送...
  • 致远OA存在任意文件下载漏洞,攻击者可利用该漏洞下载任意文件,获取敏感信息 payload 致远OA webmail.do文件读取漏洞, 由于 /seeyon/webmail.do 页面 filePath 参数过滤不严,导致可以读取系统敏感文件。 通过修改...
  • Web安全-任意文件下载漏洞

    千次阅读 2019-11-18 10:49:47
    任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。但是有的时候我们可能根本不知道网站所处的环境,以及网站的路径,这时候我们只能利用../../来逐层猜测路径,让漏洞...
  • web 任意文件下载漏洞

    2020-10-28 17:42:12
    (1) 没有对用户下载文件做限制,这就是文件下载漏洞 解决办法:规定下载路径可以很好的规避这个漏洞 二. 下载利用方式 (1) 一般链接形式: download.php?path= down.php?file= data.php?file= download....
  • 下载后使用IDEA打开工程,该漏洞是由spring-boot-actuator-logview 0.2.13之前的版本导致的。 运行项目,打开网址 poc如下: http://localhost:8887/manage/log/view?filename=/etc/group&base=../../../../.....
  • 若依管理系统是基于SpringBoot的权限管理系统,后台存在sql注入、任意文件下载漏洞,可以读取数据库、服务器上的任意文件内容。 0x02FOFA app=”若依-管理系统” 0x03漏洞复现 SQL注入 这是个..
  • 目录 1.漏洞概述 2.影响范围 3.漏洞等级 4.漏洞复现 ...这个任意文件下载漏洞之前在乌云上也爆出过了。由于配置文件/inc/attach.php中的ATTACHMENT_NAME参数未有效控制范围,导致任意文件下载。 ...
  • Jeecg 任意文件下载漏洞

    千次阅读 2020-02-17 10:58:22
    dbPath=../../etc/passwd&down=1 它默认的文件路径是D://upFiles,我们部署在linux下把目录改为其他的任意目录,我这里修改为/tmp/uploads 在配置文件中进行修改(/src/main/resources/chat_config.properties)
  • 任意文件下载漏洞&gt;。许多网站开放下载文件功能,由于下载功能代码对下载文件类型、目录未做限制或限制不当,导致攻击者可下载服务器任意文件下载web源码 通过下载web源码我们可以获得数据库配置文件,...
  • web安全(7)-- 任意文件下载漏洞

    万次阅读 2016-11-21 16:23:02
    一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载文件不做限制,则恶意用户就能够查看或下载任意文件,可以是源代码文件、敏感文件等。
  • 在web语言中,php和java常常会产生任意文件下载漏洞,由于渗透测试的需要,常常需要进一步getshell,笔者对常见的任意文件下载漏洞常见的getshell方式进行总结。欢迎指出不足和错误之处 0x02 利用方式...
  • 任意文件下载漏洞 0x01 代码分析 后台地址:192.168.5.176/admin.php admin admin 安装后的界面 在后台发布了一首新歌后,前台点进去到一个“下载LRC歌词”功能点的时候发现是使用readfile()函数的(readfile...
  • 1. 任意文件读取 一些网站的需求,可能...不管是任意文件读取还是任意文件下载,触发漏洞的条件都是相同的 1:存在读取文件的函数(web应用开放了读取功能) 2:读取文件的路径客户端可控(完全控制) 3:没有对文件路
  • 在web安全中,任意文件读取漏洞是非常常见的一种漏洞,属于文件操作类漏洞,一般常见于PHP/java/python语言中,任意文件读取漏洞,顾名思义,就是可以任意读取服务器上部分或者全部文件的漏洞,攻击者利用此漏洞...
  • 任意文件下载/读取漏洞

    千次阅读 2020-09-22 23:08:53
    文章目录任意文件下载/读取可下载文件WindowsLinuxSSHNginx任意文件读取的利用思路进一步推断系统版本无痕反弹shell常用默认路径整理sshNginxApachejettyresintomcatsvn一些网站由于业务需求,往往需要提供文件查看...
  • 1.中间件勾了目录浏览就会存在任意文件下载的风险。 出现下图就可以随意下载文件了: 2.什么是任意文件下载: 一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做...
  • 任意文件读取与下载漏洞

    万次阅读 2019-10-17 23:35:08
    为什么产生任意文件读取与下载漏洞 一些网站的业务需要,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可以是源文件,敏感文件等等。 任意文件读取漏洞 任意...
  • 网站给用户提供了文件读取和下载的功能,但是没有对查看和下载功能做过多限制,导致用户可以查看和下载任意文件。 二、漏洞危害 1、可以读取或者下载服务器的配置文件,脚本文件 2、读取或者下载数据库的配置文件 3...
  • 文章目录任意文件读取下载1、原理2、利用方式3、漏洞修复4、实例任意文件上传1、原理2、分类3、基本思路4、基本绕过方式1、客户端检测绕过(javascript 检测)2、服务端验证绕过(MIME 类型检测)3、代码注入绕过--...
  • 0x01 任意文件下载常见利用方式 ...在web语言中,php和java常常会产生任意文件下载漏洞,由于渗透测试的需要,常常需要进一步getshell,笔者对常见的任意文件下载漏洞常见的getshell方式进行总结。欢迎指...
  • 一、从一个任意文件下载漏洞说起 客户内网系统中有一个系统上线前例行安全检测。 我接到单子之后开始整活~ 打开系统,首先看看有没有上传点,兴冲冲找了一圈,失望而归。不过好歹有一个文件下载的地方,抓个包看看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,977
精华内容 23,190
关键字:

任意文件下载漏洞