精华内容
下载资源
问答
  • 任意文件读取

    千次阅读 2019-08-11 11:17:56
    一、任意文件读取 任意文件读取是属于文件操作漏洞的一种。 一般任意文件读取漏洞可以读取配置的信息甚至系统文件更重要。 严重的话,就可能导致SSRF,进而漫游内网。 通过注入修改路径 可以多重设置取最后一个值 ...

    一、任意文件读取
    任意文件读取是属于文件操作漏洞的一种。
    一般任意文件读取漏洞可以读取配置的信息甚至系统文件更重要。
    严重的话,就可能导致SSRF,进而漫游内网。
    在这里插入图片描述
    通过注入修改路径
    在这里插入图片描述
    可以多重设置取最后一个值
    在这里插入图片描述
    他会判断图片的后缀.png,要构造一个文件去截断它,考虑用usename
    在这里插入图片描述
    测试user_avatar
    在这里插入图片描述
    在这里插入图片描述
    上传任意一个图片文件在这里插入图片描述
    查看历史,照php脚本找到登陆的,用Ctal+R将它发送到存放,同样update,上传包
    将Mysql修改为错误信息的地方,若执行错误的话就会报错
    在这里插入图片描述
    抓包
    在这里插入图片描述
    二、审计思路的展现
    在这里插入图片描述

    展开全文
  • 软件简介官方网站:https://www.adminer.org/Adminer是一款轻量级的Web端数据库管理工具,支持MSSQL、MSSQL、Oracle、SQLite、PostgreSQL等众多主流...漏洞原理Adminer任意文件读取漏洞其实来源于MySQL“LOAD DAT...

    软件简介

    官方网站:https://www.adminer.org/

    Adminer是一款轻量级的Web端数据库管理工具,支持MSSQL、MSSQL、Oracle、SQLite、PostgreSQL等众多主流数据库,类似于phpMyAdmin的MySQL管理客户端,整个程序只有一个PHP文件,易于使用安装,支持连接远程数据库。

    漏洞原理

    Adminer任意文件读取漏洞其实来源于MySQL“LOAD DATA INFILE”安全问题,Adminer4.6.3版本中已经修复了LOAD DATA LOCAL INFILE问题。

    漏洞复现

    将我们攻击机的MySQL开启外链,然后执行EXP去读取一个不存在的文件让其报错得到绝对路径,最后再去读取数据库配置等指定文件即可,这里我随便读取的一个文件用于测试。

    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

    grant all privileges on *.* to 'root'@'%';    //MySQL8开启外链

    3e6aafcd7c0e9395f645f19c30c19839.png

    Adminer连接攻击机MySQL数据库时的用户名、密码及数据库名可以随意输入,只要服务器IP对即可。

    root@kali:/tmp# python mysql_client.py "D:\phpStudy\PHPTutorial\WWW\av\1.php"

    089d10924891ea98dfd382ca4b7f1b73.png

    也可以在我们攻击机的MySQL创建一个新的数据库和表,然后在Adminer填入攻击机的MySQL服务器IP、用户名、密码和刚创建的数据库名。

    create database adminer;                //创建adminer数据库

    use adminer;                            //进入adminer数据库

    create table test(text text(4096));     //创建test数据表

    执行以下SQL语句即可读取指定文件并将读取到的文件内容写入到刚创建的数据表里,不过得注意一下目标机的secure_file_priv选项,当它的值为null时就会读取不了文件了。

    load data local infile "D:\\phpStudy\\PHPTutorial\\MySQL\\data\\mysql\\user.MYD" into table test FIELDS TERMINATED BY '\n';

    select * from test;        //查看test表内容

    truncate table test;       //清空test表内容

    drop database adminer;     //删除adminer数据库

    1f2fca363f6f8796ffcc0a58d6fdcaaa.png

    展开全文
  • 任意文件读取与下载漏洞

    千次阅读 2019-10-17 23:35:08
    前言 上周参加了一个线上赛。有个Web题的WriteUp说是任意文件下载。由于之前没学过,所以就没有想到。...任意文件读取是属于文件操作漏洞的一种,一般任意文件读取漏洞可以读取配置信息甚至系统重...

    本文首发在先知社区

    0x00前言

    上周参加了一个线上赛。有个Web题的WriteUp说是任意文件下载。由于之前没学过,所以就没有想到。现在学习一下

    0x01为什么产生任意文件读取与下载漏洞

    一些网站的业务需要,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,就能够查看或下载任意的文件,可以是源文件,敏感文件等等。

    0x02任意文件读取漏洞

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

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

    任意文件读取

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

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

    0x03任意文件下载漏洞

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

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

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

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

    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));
    ?>
    

    漏洞利用方式


    利用思路

    • 下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
    • 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
    • 下载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接口将我们的文件传输进服务器。

    也可以先下载网站的配置文件,在根目录/WEB-INF/Web.xml的(一般都有很多内容,有时含有数据库连接用户名和密码等关键信息)。

    具有root权限

    在linux中有这样一个命令 locate 是用来查找文件或目录的,它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次。

    当我们不知道路径是什么的情况下,这个可以说是一个核武器了,我们利用任意文件下载漏洞将mlocate.db文件下载下来,利用locate命令将数据输出成文件,这里面包含了全部的文件路径信息。
    locate 读取方法

    locate mlocate.db admin
    

    可以将mlocate.db中包含admin内容全部输出来。
    在这里插入图片描述
    利用这个文件可以获取到该服务器任何我们想要的内容并下载出来而不用一个一个去猜解目录,但是这个文件只有root用户才能读取。另一方面我们也可以利用linux内核的一个文件/proc/self/cmdline当前进程的cmdline参数,可以获取到路径信息。

    总的来说,任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。

    0x04任意文件读取与下载漏洞挖掘

    1、web漏洞扫描器(awvs、appscan、openvas、nessus)
    2、手动挖掘从连接和参数名查看

    Google search

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

    连接:
    readfile.php?file=**.txt
    download.php?file=**.rar
    参数名:
    &RealPath=&readpath=&FilePath=&filepath=&Path=&path=&Inputfile=&inputfile=&url=&urls=&Lang=&dis=&Data=&data=&readfile=&filep=&Src=&src=&menu=META-INF=WEB-INF

    0x05敏感信息

    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 //如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去
    /root/.ssh/id_rsa //ssh私钥,ssh公钥是id_rsa.pub
    /root/.ssh/id_ras.keystore //记录每个访问计算机用户的公钥
    /root/.ssh/known_hosts
    //ssh会把每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
    /etc/passwd // 账户信息
    /etc/shadow // 账户密码文件
    /etc/my.cnf //mysql 配置文件
    /etc/httpd/conf/httpd.conf // Apache配置文件
    /root/.bash_history //用户历史命令记录文件
    /root/.mysql_history //mysql历史命令记录文件
    /proc/self/fd/fd[0-9]*(文件标识符)
    /proc/mounts //记录系统挂载设备
    /porc/config.gz //内核配置文件
    /var/lib/mlocate/mlocate.db //全文件路径
    /porc/self/cmdline //当前进程的cmdline参数

    0x06任意文件读取与下载漏洞验证

    任意文件读取验证

    示例代码:

    <?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
    

    在这里插入图片描述

    任意文件下载验证

    示例代码:

    <?php
    $filename = $_GET['f'];
    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));
    ?>
    

    在这里插入图片描述
    当然,我下载这个文件并没有内容。

    0x07漏洞判断

    参数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漏洞利用实战

    我学习任意文件读取与下载漏洞,就是因为遇到了一个任意文件读取与下载漏洞的Web题,所以在此实战一下
    RoarCTF2019-Web:Easy Java
    在这里插入图片描述
    不是弱口令,也不能扫出目录。只有一个help.docx文件可以下载。于是可能是任意文件下载漏洞。
    点击蓝字“help”,抓包,发包。发现GET方式一直什么都下载不了。后来修改为POST,就可以下载了。
    在这里插入图片描述
    因为题目提示java,所以可以先下载网站的配置文件,在根目录WEB-INF/web.xml
    在这里插入图片描述
    发现操作flag的关键文件位置,读取(或下载)/WEB-INF/classes/下的flag的关键文件位置,又因为Java字节码类文件(.class)是Java编译器编译Java源文件(.java)产生的“目标文件”。
    最终得出flag的关键文件位置为:/WEB-INF/classes/com/wm/ctf/FlagController.class
    在这里插入图片描述
    Base64解码得到flag
    在这里插入图片描述

    展开全文
  • MYSQl任意文件读取

    千次阅读 2020-01-19 07:58:00
    MYSQl任意文件读取实现原理:攻击者搭建一个伪造的mysql服务器,当有用户去连接上这个伪造的服务器时。攻击者就可以任意读取受害者的文件内容。主要是因为LOAD DATA INFILE...

    MYSQl任意文件读取

    实现原理:

    攻击者搭建一个伪造的mysql服务器,当有用户去连接上这个伪造的服务器时。

    攻击者就可以任意读取受害者的文件内容。

    主要是因为LOAD DATA INFILE这个语法

    作用是读取一个文件的内容并且放到一个表中。

    load datalocalinfile"/home/data.csv"intotableTestTable;
    

    读取客户端文件,

    漏洞利用:

    漏洞利用的相关工具及源码已在github,先亮出地址:https://github.com/allyshka/Rogue-MySql-Server

    1.在python2运行脚本文件roguemysqlserver.py

    在roguemysqlserver.py文件中filelist 为读取受害者的文件地址。

    运行py脚本文件。

    2.受害者来连接攻击者伪造的mysql服务器,这里使用虚拟机开了一台centos为受害者来连接。

    由于我们搭建的mysql为欺骗受害者访问,所有这里采用账号密码都为root。

    3.受害者在连接的时候文件已经被读取到我们的本地文件mysql.log中

    下面为受害机器centos中的内容:

    可以看到受害者centos的/etc/passwd的内容都被读取到了攻击者的mysql.log文件中。

    应用场景:

    1.配合网站的重装漏洞进行利用读取服务器的任意文件。

    2.数据迁移等需要连接外部数据的功能点

    3.搭建在蜜罐上读取攻击者的信息。

    漏洞修复:

    禁掉load读取文件

    使用加密链接ssl-mode=VERIFY_IDENTITY

    参考文章

    https://y4er.com/post/mysql-read-client-file/

    可扫描下面二维码加入知识星球继续学习WEB安全知识:

    Ms08067安全实验室

    专注于普及网络安全知识。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,目前在编Python渗透测试,JAVA代码审计和二进制逆向方面的书籍。

    团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。

    官方网站:www.ms08067.com

    展开全文
  • GlassFish 任意文件读取

    2021-03-04 14:15:19
    2015年10月,被爆出通用任意文件读取漏洞。利用这个漏洞,攻击者可读取服务器上任意文件。 与宽字节SQL注入一致,都是由于unicode编码歧义导致的。 影响版本:4.0至4.1 二. 漏洞复现 1. 环境搭建 使用vulhub中...
  • PhpMyadmin任意文件读取漏洞
  • 任意文件读取漏洞及危害 通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不严格,用户可以控制这个...
  • 对于任意文件读取漏洞,每个人的理解都不同,此处仅提出一种较为谨慎的思路。1壹1找到系统存在一个读取点,利用文件 ID 或者文件名读取文件的读取点,确定成功读取的状态1贰1读取一个不存在的文件,确定读取不存在...
  • <p>Vmware Vcenter 任意文件读取 测试环境 <p>app="vmware-VirtualCenter" 备注 提供了linux和windows两种poc,且是新漏洞,暂无CVE编号。</p><p>该提问来源于开源项目:chaitin/xray...
  • Flink 任意文件读取和写入一、前言Apache Flink 两个高危漏洞(CVE-2020-17518&CVE-2020-17519),分别是任意文件写入和任意文件读取.二、commit 分析原代码String filename = handlerRequest.getPathParameter...
  • 任意文件读取下载漏洞

    万次阅读 2017-12-19 10:06:58
    任意文件读取下载漏洞漏洞原理
  • 原理: 在web安全中,任意文件读取漏洞是非常常见的一种漏洞,属于文件操作类漏洞,一般常见于PHP/java/python语言中,任意文件读取漏洞,顾名思义,就是可以任意读取... 任意文件读取漏洞的原理其实就是由于程..
  • 这次审计找到了一个后台的任意文件读取,可以读取数据库配置文件。 在DataAction.class.php文件中,获取了$_GET['id']并直接用于路径拼凑,最后到达readfile函数中,导致了任意文件读取漏洞。 访问localhost/...
  • 任意文件读取 任意文件写入 修复建议 漏洞描述 Flink 在 1.5.1 版本中引入了一个 REST handler,这允许攻击者将已上传的文件写入本地任意位置的文件中,并且可通过恶意修改的 HTTP 头将这些文件写入到 Flink ...
  • Apache Solr 任意文件读取漏洞复现
  • 实现原理: ...就实现了任意文件读取。 具体原理参考:https://cloud.tencent.com/developer/article/1426503实验一 用到的工具:https://github.com/allyshka/Rogue-MySql-Server.git 这里用到两台
  • 漏洞简介 未授权任意文件读取,/wxjsapi/saveYZJFile接口获取filepath,输入文件路径->读取文件内容。返回数据包内出现了程序的绝对路径,攻击者可以通过返回内容识别程序运行路径从而下载数据库配置文件。 目录遍历...
  • Lanproxy 任意文件读取漏洞复现,包括压缩包文件、漏洞复现文章笔记
  • 漏洞介绍 很多网站由于业务需求,往往需要提供文件(附件)下载的功能块,但是如果对...任意文件读取常见参数名: &RealPath= &FilePath= &file= &filename= &Path= &path= &inputFile= &
  • 2020年4月28日,GitLab的一个任意文件读取漏洞的漏洞细节被公开。该漏洞补丁于2020年3月26号由GitLab官方发布。深信服安全研究团队依据漏洞重要性和影响力进行评估,作出漏洞通告。漏洞名称:GitLab任意文件读取漏洞...
  • 一、漏洞介绍 网站给用户提供了文件读取和下载的功能,但是没有...1、任意文件读取的代码: <?php $filename=”1.txt”; readfile($filename); ?> <?php $filename=”1.txt”; echo file_get_con
  • 对于任意文件读取漏洞,每个人的理解都不同,此处仅提出一种较为谨慎的思路。1壹1找到系统存在一个读取点,利用文件 ID 或者文件名读取文件的读取点,确定成功读取的状态1贰1读取一个不存在的文件,确定读取不存在...
  • 土拨鼠先生MYSQl任意文件读取实现原理:攻击者搭建一个伪造的mysql服务器,当有用户去连接上这个伪造的服务器时。攻击者就可以任意读取受害者的文件内容。主要是因为LOAD DATA INFILE这个语法作用是读取一个文件的...
  • weblogic任意文件读取漏洞+后台任意上传 漏洞环境描述 本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。 影响版本: ...
  • 任意文件读取漏洞是因为没有验证请求的资源文件是否合法导致的,这类漏洞在java中有很大的机率出现。 VMware vCenterServer 是一个提供了可伸缩、可扩展的平台,为虚拟化管理奠定了基础。VMware vCenterServer的...
  • 利用%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/来向上跳转,达到目录穿越、任意文件读取的效果。 影响范围 4.1.0 复现过程 这里使用4.1.0版本 使用vulhub /app/vulhub-master/glassfish/4.1.0 使用docker启动 docker...
  • Apache Solr 任意文件读取漏洞 一.漏洞描述 Apache Solr 存在任意文件读取漏洞,攻击者可以在未授权的情况下获取目标服务器敏感文件。 二.影响版本 Apache Solr <= 8.8.1 三.漏洞复现 1.搭环境 下载Solr ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,353
精华内容 1,741
关键字:

任意文件读取