20-文件下载及读取漏洞

这篇具有很好参考价值的文章主要介绍了20-文件下载及读取漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WEB 漏洞-文件操作之文件下载读取全解

思维导图

web下载漏洞,服务器,数据库,网络安全,安全

  • 1.文件被解析,则是文件解析漏洞
  • 2.显示源代码,则是文件读取漏洞
  • 3.提示文件下载,则是文件下载漏洞

文件下载漏洞

利用条件

(1)存在读文件的函数和操作

(2)读取文件的路径用户可控且未校验或校验不严

(3)输出了文件内容

危害

(1)下载服务器任意文件,如脚本代码,服务以及系统配置文件等

(2)可用得到的代码进一步代码审计,挖掘漏洞

文件读取漏洞

就是攻击者通过一些手段可以读取服务器上开发者不允许读到的文件

一 、简介

由于业务需求,很多网站往往需要提供文件(附件)下载的功能块,但是如果对下载的文件没有做限制,直接通过绝对路径对其文件进行下载,那么,恶意用户就可以利用这种方式下载服务器的敏感文件,对服务器进行进一步的威胁和攻击。

漏洞利用

  • 数据库配置文件下载或者读取后续
  • 接口密钥信息文件下载或者读取后续

二、任意文件下载漏洞地址

对应文件

  • 配置文件(数据库,平台,各种等)
利用:(信息收集信息>猜路径 >>下载配置文件/代码文件 >> 利用服务器软件漏洞> shell> 提权)
 
1.任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。
 
2.下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。
 
3.平台文件
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
    /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参数
 
参考:https://www.cnblogs.com/zzhoo/p/12613815.html

记住下载和访问是不一样的.

案例1:pikuchu靶场-文件下载测试-参数判断

<1>打开显示如下,点击人名可以下载对应图片。web下载漏洞,服务器,数据库,网络安全,安全

<2>抓包得到对应下载地址如下:

http://127.0.0.1:8080/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png

web下载漏洞,服务器,数据库,网络安全,安全

<3>修改filename参数值如下,尝试下载当中的execdownload.php文件,判断是否存在文件下载漏洞。

http://192.168.31.128/pi/vul/unsafedownload/execdownload.php?filename=../execdownload.php

//判断出在上级目录所以使用一个../

web下载漏洞,服务器,数据库,网络安全,安全

如果直接访问

http://192.168.31.128/pi/vul/unsafedownload/execdownload.php?
//也下载了文件但是不是源码

web下载漏洞,服务器,数据库,网络安全,安全

因为PHP代码在页面中就是不可见的,一种属于访问,一种属于下载.

<4>可以使用扫描工具爬行或扫描地址,直接找到配置文件,或者通过下载代码文件分析其中包含的文件路径等,找到配置文件等敏感文件。

1.比如可以通过网站其他页面,将他通过…/的方式下载下来。分析代码。

web下载漏洞,服务器,数据库,网络安全,安全

2.使用御剑工具中的字典扫描目录:

扫描出:(http://192.168.31.128/pi/vul/unsafedownload/download/)

这个是网站的存储的文件地址

web下载漏洞,服务器,数据库,网络安全,安全

扫出敏感文件:

web下载漏洞,服务器,数据库,网络安全,安全

打开连接,如果打不开就是没有权限.

web下载漏洞,服务器,数据库,网络安全,安全

<5>分析配置文件路径,构造filename参数值,使其指向配置文件地址,下载。

http://127.0.0.1/vul/unsafedownload/execdownload.php?filename=../../../inc/function.php

<6>在配置文件中可以找到数据库用户名密码等敏感信息,方便后期利用。

config.inc.php中存放数据库名和密码web下载漏洞,服务器,数据库,网络安全,安全

案例2:Zdns网站文件下载真实测试-功能点

<1>网站打开如下,找到下载功能点,点击下载。web下载漏洞,服务器,数据库,网络安全,安全

<2>抓包获取下载请求,分析如下。

真实的下载地址http://down.znds.com/getdownurl/?s=/down/20210806/txsp16158_7.8.0.1005_dangbei.apk

更换下载地址也就存在了文件下载漏洞web下载漏洞,服务器,数据库,网络安全,安全

<3>下载请求参数值是一个路径+文件名,猜测含有文件下载漏洞。这里我们不知道网站的代码结构,因此无法构造请求下载敏感文件。

<4>本案例主要是告诉我们下载漏洞在哪里测?下载漏洞怎么判断存在等。

一般去找下载功能点测试,观察下载接口参数值是不是文件名,是不是可以改为其他文件名或文件路径。

案例3:小米路由器-文件读取真实测试-漏洞

地址:https://www.seebug.org/vuldb/ssvid-98122

远程任意文件读取漏洞(CVE-2019-18371)

小米路由器的nginx配置文件错误,导致目录穿越漏洞,实现任意文件读取(无需登录)

nginx配置不当可导致目录穿越漏洞

location /xxx {
alias /abc/;
}

可通过访问http://domain.cn/xxx…/etc/passwd实现目录穿越访问上级目录及其子目录文件。

在小米路由器的文件/etc/sysapihttpd/sysapihttpd.conf中,存在。

location /api-third-party/download/extdisks {
alias /extdisks/;
}

故可以任意文件读取根目录下的所有文件,而且是root权限,

如访问http://192.168.31.1/api-third-party/download/extdisks…/etc/shadow

web下载漏洞,服务器,数据库,网络安全,安全

在fofa上搜索“小米路由器”,找到真实地址访问测试,成功下载文件。

web下载漏洞,服务器,数据库,网络安全,安全

web下载漏洞,服务器,数据库,网络安全,安全

案例4:RoarCTF2019-文件读取真题复现-比赛

地址:https://buuoj.cn/challenges#%5BRoarCTF%202019%5DEasy%20Java 思路:

  • 爬虫扫描地址-分析参数名参数值-文件操作安全-对应脚本
  • 修改提交方式测试-读取WEB配置文件WEB-INF/web.xnl
  • 访问读取对应地址-访问读取flag对应class文件-(WEB-INF/classes/com/wm/ctf/FlagController.class)

web下载漏洞,服务器,数据库,网络安全,安全

<1>打开首页是一个登录框

web下载漏洞,服务器,数据库,网络安全,安全

<2> 复制help连接,发现会触发一个文件下载请求:

http://90bc3afb-141d-47ba-b455-b2120b39a054.node4.buuoj.cn:81/Download?filename=help.docx

web下载漏洞,服务器,数据库,网络安全,安全

<3>直接get该请求,报错,

web下载漏洞,服务器,数据库,网络安全,安全原因是java代码设置了post请求方式,

因此我们将filename的传值以post方式提交

web下载漏洞,服务器,数据库,网络安全,安全

<5>help文件内容如下,说明flag并不在这里。但是通过分析请求参数,猜测这里有文件下载读取漏洞。

web下载漏洞,服务器,数据库,网络安全,安全

<6> 通过分析该为Java程序开发的,在javaweb中有个WEB-INF文件下web.xml配置文件

  • Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。

web下载漏洞,服务器,数据库,网络安全,安全

将filename值改为java的配置文件,成功读取到配置文件并在配置文件中找到了flag对应地址

web下载漏洞,服务器,数据库,网络安全,安全

<7>尝试访问flag文件路径,报错,但是报错信息暴露了一个文件地址(该地址在配置文件中也有)web下载漏洞,服务器,数据库,网络安全,安全

<8>下载该文件 ,成功拿到flag。

web下载漏洞,服务器,数据库,网络安全,安全

web下载漏洞,服务器,数据库,网络安全,安全

案例5:百度杯2017二月-Zone真题复现-比赛拓展

地址:https://www.ichunqiu.com/battalion?t=1&r=57475

<1>首页是一个登录页面web下载漏洞,服务器,数据库,网络安全,安全

<2>首页抓包

看到login=0,

web下载漏洞,服务器,数据库,网络安全,安全

将cookie中的login=0改为login=1,成功登录。web下载漏洞,服务器,数据库,网络安全,安全

<3>点击manage,继续抓包,将cookie中的login=0改为login=1

web下载漏洞,服务器,数据库,网络安全,安全

web下载漏洞,服务器,数据库,网络安全,安全

<4>抓到下一个请求接口,这个接口很关键,有module=index&name=php参数,意思是访问index.php文件。

web下载漏洞,服务器,数据库,网络安全,安全

<5>尝试修改参数值,实现对指定文件的读取。…/.绕过了…/过滤

GET /manages/admin.php?module=..././..././..././etc/nginx/nginx.conf&name= HTTP/1.1

防护

(1)过滤特殊字符.点,使用户在URL中不能穿越目录

(2)正则严格判断用户输入参数的格式

(3)php.ini配置open_basedir限定文件访问范围

(4)将文件路径保存于数据库中,通过url?id=123的方式下载文件文章来源地址https://www.toymoban.com/news/detail-752326.html

到了这里,关于20-文件下载及读取漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos服务器如何下载文件?

    我们如果要下载文件到Centos服务器中,如何下载呢?今天飞飞和你分享通过wget命令来实现下载文件。服务器大本营,技术文章内容集合站发车啦! 首先查看CentOS7 系统有没有安装wget: 如果安装了会提示当前安装的版本: 没安装的话可以通过以下命令安装: 下载文件的命令

    2024年02月16日
    浏览(39)
  • Nginx搭建文件下载服务器教程!

    搭建基于Nginx的文件下载服务器非常简单。以下是教程: 安装Nginx: 在终端中执行以下命令以安装Nginx: 配置Nginx: 打开Nginx配置文件进行编辑: 修改配置文件: 在  http 块内添加以下配置: 保存并关闭配置文件: 按下  Ctrl + X ,然后输入  Y 来保存更改并关闭编辑器。 测

    2024年02月07日
    浏览(56)
  • 使用 Nginx 搭建文件下载服务器

      版权声明:本文为CSDN博主「杨群」的原创文章,遵循 CC 4.0 BY-SA版权协议,于2023年8月27日首发于CSDN,转载请附上原文出处链接及本声明。   原文链接:https://blog.csdn.net/u011046671/article/details/132526618   操作系统:microsoft Windows 10 专业版   nginx 版本:1.25.1   使用

    2024年02月06日
    浏览(55)
  • MobaXterm上传下载文件、文件夹到服务器上

      首先通过SSH与服务器建立连接,不懂的可查阅相关资料,CSDN里有很多介绍。 1、上传下载文件 可以在命令输入窗口,无需输入命令,按ctrl单击的同时鼠标右键出现以下左图,选择receive file using Z-modem或者send file using Z-modem来上传或者下载文件。 也可以通过mobaxterm左侧的导

    2024年02月11日
    浏览(51)
  • java根据服务器(linux)端ip+文件路径将服务器端文件下载到本地

    jsch:Maven Repository: com.jcraft » jsch » 0.1.55 (mvnrepository.com)​​​​​  

    2024年02月11日
    浏览(66)
  • CentOS用nginx搭建文件下载服务器

      Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动。在工作中,我们经常会用到需要搭建文件服务器的情况,这里就以在linux下搭建文件服务器为例,解释编译nginx和搭建服务

    2024年02月02日
    浏览(53)
  • 纯nginx制作文件上传下载服务器

    webdav 是一组超文本传输协议的技术集合,有利于用户键协同编辑和管理存储在万维网服务器文档。同时来说就是,webdav可以让用户直接存储,下载,编辑文件,操作文件需要进行用户认证 需要的环境 linux上需要下载git(用来拉取镜像) nginx版本为:nginx-1.22.0.tar.gz 至此,需要

    2024年02月15日
    浏览(58)
  • FTP服务器文件自动上传、下载(bat)

    tips: 可以参照标题3上面的配置,自行调整本地路径、FTP服务器路径、账号密码等

    2024年02月15日
    浏览(43)
  • lua 请求ftp服务器数据,下载文件

    1、装入ftp库 2、调用ftp的get()方法 3、get()方法参数格式: 4、将返回到的数据写入文件中 例如,本次获取专利数据系统 http://patdata1.cnipa.gov.cn/ 的ftp站点数据

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包