文件下载漏洞

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

文件下载漏洞

原理

任意漏洞下载是因为一般的网站提供了下载文件功能,但是在获得文件到下载文件的时候并没有进行一些过滤,这就导致了漏洞的产生。
网站下载地址类似 https://www.test.com/upload/xiazai.php?file=/wenjian/123.doc格式网站有可能存在,因为文件名是作为一个参数传入的。如果下载地址是 http://www.test.com/upload/wenjian/123.doc格式,不带参数传入文件名的则不存在文件下载漏洞
区别

文件被解析--文件包含漏洞
显示源代码--文件读取漏洞
提示文件下载--文件下载漏洞

pikachu演示

1随便下载一个图片,分析一下下载链接
文件下载漏洞【http://127.0.0.1/pikachu-master/vul/unsafedownload/execdownload.php?filename=ns.png】
【http://127.0.0.1/pikachu-master/vul/unsafedownload/execdownload.php?filename=rayal.png】
很明显filename参数这里存在文件下载漏洞,接下来可以使用御剑等工具进行探针,看一看存在哪些敏感文件,构造我们所需要的下载链接
文件下载漏洞
构造链接的方法:1使用工具爬行–御剑、铸剑等 2下载好的文件代码中去分析路径和文件包含
举例:config.php配置文件—>得到数据库密码—>连接数据库

http://127.0.0.1/pikachu-master/vul/unsafedownload/execdownload.php?filename-../../inc/function.php

下载成功
文件下载漏洞

常见文件路径

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:
   /etc/passwd                  #查看用户文件
   /etc/shadow                  #查看密码文件
   /etc/my.cnf 
   /etc/httpd/conf/httpd.conf   #查看apache的配置文件
   /root/.bash_history          #查看历史命令
   /root/.mysql_history         #mysql历史命令记录文件
   /var/lib/mlocate/mlocate.db  #本地所有文件信息
   /etc/ssh/sshd_config         #ssh配置文件,如果对外开放可看到端口
   /proc/self/fd/fd[0-9]*(文件标识符)
   /proc/mounts
   /porc/config.gz
   /root/.ssh/authorized_keys                
   /root/.ssh/id_rsa  
   /root/.ssh/id_ras.keystore
   /root/.ssh/known_hosts

程序的配置文件
apache:
    /etc/httpd/conf/httpd.conf
    /etc/apache2/httpd.conf
    /etc/apache2/apache2.conf
nginx:
    /etc/nginx/nginx.conf
    /usr/local/nginx/conf/nginx.conf
    /usr/local/etc/nginx/nginx.conf
redis:
    /etc/redis.conf
    index.php?f=../../../../../../etc/passwd 

防御手段

1:净化数据:对用户传过来的文件名参数进行统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
过滤.(点),使用户在url中不能回溯上级目录 正则严格判断用户输入参数的格式
2:要下载的文件地址保存至数据库中。
3:文件路径保存至数据库,让用户提交文件对应ID下载文件。
4:用户下载文件之前需要进行权限判断。
5:文件放在web无法直接访问的目录下。
6:不允许提供目录遍历服务。
7:公开文件可放置在web应用程序下载目录中通过链接进行下载
8:php.ini配置open_basedir限定文件访问范围

CTF真题复现

buu [RoarCTF 2019]Easy Java

题目地址:http://e46c7bc8-5ac2-4ca4-ac88-1ef3a2888e73.node4.buuoj.cn:81/
1点击一下help
文件下载漏洞

这里对WEB-INF进行一个简单的了解。
WEB-INF是java的WEB应用的安全目录。
1.WEB-INF/web.xml:web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则。
2.WEB-INF/classes:包含了站点所有用的class文件,包括servlet class和非servlet class
3.WEB-INF/lib:存放web应用需要的JAR文件
4.WEB-INF/src:源码目录,按照包名结构放置各个java文件
5.WEB-INF/database.properties:数据库配置文件
6.WEB-INF/tags:存放了自定义标签文件
7.WEB-INF/jsp:jsp 1.2 一下版本的文件存放位置。
8.WEB-INF/jsp2:存放jsp2.0以下版本的文件。
9.META-INF:相当于一个信息包。

漏洞成因

通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

漏洞检测以及利用方法

通过找到web.xml文件,推断class文件的路径,最后得到class文件,再通过反编译class文件,得到网站源码。
找web.xml:直接请求/WEB-INF/web.xml或者更换为POST请求
2这里使用post请求:

http://93afad24-6b0b-4cc4-85ac-b07a8275c6c9.node4.buuoj.cn:81/Download
POST:
filename=/WEB-INF/web.xml

文件下载漏洞
成功下载
文件下载漏洞
3得到文件,里面有FlagController
文件下载漏洞
4构造请求

http://93afad24-6b0b-4cc4-85ac-b07a8275c6c9.node4.buuoj.cn:81/Download
POST:
filename=WEB-INF/classes/com/wm/ctf/FlagController.class

文件下载漏洞文件下载漏洞文件下载漏洞
5得到文件,里面有一段base64编码,解码得到flag{557e9214-8a40-4741-af00-682ff0a62fbf}
文件下载漏洞文章来源地址https://www.toymoban.com/news/detail-483865.html

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

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

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

相关文章

  • 致远OA SQL&任意文件下载漏洞(含批量检测POC)

    致远OA A6 test.jsp 存在sql注入漏洞,并可以通过注入写入webshell文件控制服务器 漏洞影响 致远OA A6 网络测绘 app=“致远OA6” 批量检测POC 当然扫描结果可能不是特别准确,可能因素是网络测绘工具根据语法收集的ip有出入,或者有waf检测到恶意流量跳转到防护页面等,状态码也是

    2024年02月07日
    浏览(65)
  • 【漏洞复现-通达OA】通达OA get_file.php 任意文件下载漏洞

    通达OA get_file.php文件存在任意文件下载漏洞,攻击者通过漏洞可以读取服务器敏感文件。 ● 通达OA2011 ● hunter app.name=\\\"通达 OA\\\" ● 特征

    2024年02月21日
    浏览(63)
  • 任意文件下载(读取)

    目录 漏洞简介 产生原因 漏洞利用 常见敏感文件路径 Windows系统 Linux系统 Web应用 PHP ASP  ASPX JSP 漏洞利用方法 注意事项 漏洞测试 一些网站由于业务需求,往往需要提供文件查看或下载功能。一般来说在文件下载或查看功能处,当文件名参数可控,且系统未对参数进行严格过

    2023年04月21日
    浏览(41)
  • 记一次任意文件下载到Getshell

    任意文件下载(Arbitrary File Download)是一种常见的 Web 攻击技术,用于窃取服务器上任意文件的内容。攻击者利用应用程序中的漏洞,通过构造恶意请求,使应用程序将任意文件(如配置文件、敏感数据等)发送给攻击者。一旦攻击者成功利用这种漏洞,就可以从服务器上获取

    2024年02月08日
    浏览(45)
  • 解决从github下载资源慢的问题,加速下载任意文件

    如果你是一个开发者,你一定经常需要从github上下载一些开发软件或工具,但是你是否遇到过这样的问题:下载速度慢得让人抓狂,甚至有时候还会下载失败?你是否想过有没有什么办法可以让github下载变得快速而稳定呢? 今天,我就要告诉你一个简单而有效的方法,让你从

    2024年02月13日
    浏览(45)
  • 文件下载漏洞

    任意漏洞下载是因为一般的网站提供了下载文件功能,但是在获得文件到下载文件的时候并没有进行一些过滤,这就导致了漏洞的产生。 网站下载地址类似 https://www.test.com/upload/xiazai.php?file=/wenjian/123.doc格式网站有可能存在,因为文件名是作为一个参数传入的。如果下载地址

    2024年02月09日
    浏览(32)
  • 20-文件下载及读取漏洞

    1.文件被解析,则是文件解析漏洞 2.显示源代码,则是文件读取漏洞 3.提示文件下载,则是文件下载漏洞 利用条件 : (1)存在读文件的函数和操作 (2)读取文件的路径用户可控且未校验或校验不严 (3)输出了文件内容 危害 : (1)下载服务器任意文件,如脚本代码,服

    2024年02月05日
    浏览(33)
  • 渗透测试漏洞原理之---【任意文件读取漏洞】

    1、概述 一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。 任意文件读取会造成(敏感)信息泄露; 任意文件读取大多数情况是由

    2024年02月10日
    浏览(50)
  • 网络安全-kkFileViews任意文件读取漏洞原理解析

    在学习的过程中,了解到kkFileView存在任意文件读取、SSRF、文件上传漏洞。 为了更深刻的理解其原理,我从git拉取了项目,由于该漏洞在最新版本已经修复,所以这只是历史版本中存在的。 写这篇文章来提醒自己代码中容易出问题的地方。 来到kkFileView官网,发现支持Gitee,

    2024年04月11日
    浏览(38)
  • okhttp下载文件 Java下载文件 javaokhttp下载文件 下载文件 java下载 okhttp下载 okhttp

    示例 http客户端 用的是 okhttp,也可以用 UrlConnetcion或者apache okhttp官网 也可以下载 okhttp jar方式引入 1.1、okhttp发起请求官网Demo 3.1读写内容

    2024年02月12日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包