当前位置: 首页 > news >正文

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

目录

    • 介绍
      • 利用
      • 获取数据库配置文件
      • 文件名,参数值,目录符号
    • 涉及案例:
      • Pikachu-文件下载测试-参数
      • Zdns-文件下载真实测试-功能点
      • 小米路由器-文件读取真实测试-漏洞
      • RoarCTF2019-文件读取真题复现-比赛
      • 百度杯2017二月-Zone真题复现-比赛拓展

在这里插入图片描述
下载和读取都差不多,只是有时候它的显示有点问题
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞

#文件下载,读取
原理,检测

介绍

使用目录爬取工具,能够直接找到文件对应地址的,这个时候,我们可以通过下载漏洞去下这些文件,这些都是常见文件,一般下载的话,会下载敏感文件
密匙文件:类似密码的文件

这些信息文件能够下载下来的话,就能够得到相关敏感信息,这些敏感信息对于我们后续的渗透是非常有帮助的,这个漏洞是不会影响到权限的丢失,因为一旦有文件下载漏洞的话,我们可以通过这个漏洞下载我们想要的文件,但想要的文件通常是敏感文件或许说对后续渗透有帮助的。比如说得到数据库的配置文件、账号密码,那如果得到账号密码,是可以尝试连接当前数据库的,在数据库里面找到关于网站的相关数据,其中就有网站的相关账号密码

文件下载漏洞和前面的几个漏洞比危害比较小一点,但是他也是一种漏洞
文件读取漏洞基本上都差不多,就是进行文件的读取,获取文件的一个真实代码

利用

数据库配置文件下载或读取后续
敏感文件,我们要知道他的绝对路径才行,但是那些文件一般可以通过扫描或者通过你下载好的文件里面的代码,去分析,代码里面也会涉及到类似文件

http://127.0.0.1:8080/pikachu/vul/unsafedownload/download/ai.pnghttp://127.0.0.1:8080/pikachu/vul/unsafedownload/execdownload.php?filename=../../../inc/function.phphttp://127.0.0.1:8080/pikachu/vul/unsafedownload/download/execdownload.php

…/是用来跨目录的,一般我们用文件下载漏洞来下载敏感文件

获取数据库配置文件

1.扫描工具爬行或扫描地址

2.下载好的文件代码中去分析路径和包含文件获取
可以探测到的文件、已经展示出来的文件,我们称之为可见文件。这些文件下载之后,我们可以去分析这些代码,在里面去翻有没有包含文件、涉及到其它文件,在去下载其它文件。

扫描工具可以扫描到一些常见的一些数据库配置文件地址

拿到数据库配置文件,对我们的渗透是有帮助的,我们就可以对这个数据库进行连接,但是有时候root是不支持外联的,只是说这是个问题,但是这不影响我们后续的一个过程。如果他不是root,我们是不是就可以连接了,而且他是root还是有点机率能连接的,因为数据库默认是root是不能连接,但是管理者可能为了方便,会把他开启,这个也说不准;如果不是root他应该是可以连接,我们直接连接到数据库上面直接得到这个网站上面的密码,就可以用这个账号密码做一些后续的测试了,所以你通过敏感文件是能够拿到下面敏感信息的

这个漏洞攻击就是简简单单,通过网站自身的一个下载功能,来下载一些关于网站的敏感文件

接口密匙信息文件下载或读取后续

文件名,参数值,目录符号

read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=

../  ..\ .\  ./等
%00 ? %23 %20 .等
&readpath=&filepath=&path=&inputfile=&url=&data=&readfile=&menu=、META-INF=、WEB-INE

文件接收的参数值,这些参数值将能决定是不是相应的漏洞,在利用的时候,我们一定要活学活用跨越目录的符号

漏洞是不在乎那个程序的,php也好,java也好。他是通用的,他是不会去考虑脚本不同,漏洞就不一样。都是一样的

我们直接访问后台代码文件和我这里去下载这个文件,看到的是不一样的,如果是一样的,那这种漏洞就不值一提了。

凡是像下载类的网站或者有这种功能的,通通可以测试有没有下载漏洞

涉及案例:

Pikachu-文件下载测试-参数

通过参数来发现漏洞,我们通过替换参数值来下载文件,这就是通过网站参数值来发现漏洞

Zdns-文件下载真实测试-功能点

有下载漏洞就有下载功能

http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyMDA4MTQva2xrXzluMC4wLjJfZGFuZ2JlaS5hcGs=http://down.znds.com/getdownurl/?s=/down/20200814/klk_2.0.0.2_dangbei.apk

网站对下载的链接进行加密,完全是为了看不出来什么效果,因为这个值是加密的,你在分析的时候你就不知道是什么东西,是不是接上的是类似文件名、文件地址等等。但是当你解密出来的时候,会发现就是对应的一个文件下载

找一个跟文件域名相关的地址,在down下

我们要下载什么文件,我们这里就传输文件的绝对路径,如果网站的下载链接是加密的,我们就去加密

我们要下载的话要去下载脚本文件,像app文件就没有什么价值

在利用这个漏洞的时候,我们需要知道网站脚本的地址,如果不知道在后续的利用上有些困难,但是也不影响我们发现这个漏洞原因

他下载的链接是加密的,我们也得加密,不然无法识别;所以下载漏洞在找的时候,围绕网站下载功能的地方找,然后判断他有没有漏洞,就看他后面的参数,是不是可以进行修改,是不是接上的是文件的名字

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

这个漏洞的产生是多方位的,因为是真实的案例,不方便演示,大家感兴趣的话,可以自己下去玩一下
很多时候,我们去复现的时候,除了自己去搭环境,还可以用fofa去搜,目标是很多的,但是我不建议大家这样去测试,只是这个思路是这样子的
如果目标比较敏感的话,那就搞不好了
漏洞存在是多方面的,自己碰上具体目标的时候,也要学会利用各大公开网站上的poc,这样利用起来非常简单

RoarCTF2019-文件读取真题复现-比赛

打开是个登录框,一般常见的思维是尝试登录,可以先试一下弱口令进行登录,试一下有没有注入点,这些都属于前期的测试

http://40e7b2ba-d51b-4b9a-ab3c-5f34b75d18b3.node3.buuojcn/Download?filename=help.docx

如果我更改help.docx,他会不会去下载对应文件,这就是一个典型的文件下载功能传的一个参数help.docx文件

java开发的习惯,一般文件下载这种都是通过post传递
在这里插入图片描述
先下载配置文件,通过配置文件了解网站的文件和目录

这就是通过下载漏洞来进行flag的提取,这个漏洞就是通过网址上面的某一个地址,参数上面跟下载漏洞相关,然后具体分析到

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

下载或文件读取漏洞:
对应文件:配置文件(数据库,平台,各种等),优先选取和下载的,如果这种文件找不到的话,那就通过操作系统的默认文件来了解网站和服务器的情况。
我们要下载文件的话,我们要确定这种文件是否存在
操作系统的文件是默认会存在的:
https://xz.aliyun.com/t/6594
在这里插入图片描述

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

在实战情况下,文件下载漏洞出现的概率没有sql、上传多,但是我们还是需要学习一下,有时候会有异想不到的情况

根据网站自身的一个类型,拿到一个网站和目标之后,我们要通过网站这个类型,要第一时间对漏洞要有自己的想法,有的网站有应用下载功能,像这种的话,出的安全问题,就在下载上面;博客网站上面没有下载,就不用去找下载漏洞,所以漏洞这些东西,都是跟应用点有关的。

相关文章:

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

目录 介绍利用获取数据库配置文件文件名,参数值,目录符号 涉及案例:Pikachu-文件下载测试-参数Zdns-文件下载真实测试-功能点小米路由器-文件读取真实测试-漏洞RoarCTF2019-文件读取真题复现-比赛百度杯2017二月-Zone真题复现-比赛拓展 下载和读取都差不…...

Linux之history、tab、alias、命令执行顺序、管道符以及exit

目录 Linux之history、tab、alias、命令执行顺序、管道符以及exit history历史命令 格式 参数 修改默认记录历史命令条数 案例 案例1 --- 显示history历史记录中出现次数最高的top10 案例2 --- 增加history显示的时间信息 命令与文件名补全 --- tab 命令别名 格式 案…...

vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享

VCOMP100.DLL 是由微软打造的动态链接库,它对于一些图形密集型应用,例如Photoshop,以及多款知名游戏如巫师3的运行至关重要。 如果操作系统在启动应用程序时无法找到此vcomp100.dll,则会出现vcomp100.dll丢失或未找到错误。 如果D…...

Vue3自定义指令(directive)

文章目录 前言一、Vue3指令钩子函数二、自定义指令的两种方式1.局部使用例子1:鉴权例子2:拖拽 2.全局使用例子1:监听宽高指令例子2:监听是否出现在视口 总结 前言 此文章主要讲了vue3中自定义指令的使用,以及一些WebA…...

大数据课程L9——网站流量项目的实时业务处理代码

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握网站流量项目的SparkStreaming代码; ⚪ 掌握网站流量项目的HBaseUtil代码; ⚪ 掌握网站流量项目的MysqlUtil代码; ⚪ 掌握网站流量项目的LogBean代码; ⚪ 掌握网站流量项目的To…...

【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论

文章目录 一、爬取目标二、展示爬取结果三、爬虫代码四、同步视频五、附完整源码 您好,我是 马哥python说,一枚10年程序猿。 一、爬取目标 之前,我分享过一些B站的爬虫: 【Python爬虫案例】用Python爬取李子柒B站视频数据 【Pyt…...

mysql设置max_sp_recursion_depth,sql_mode

mysql 中设置 @@max_sp_recursion_depth select @@max_sp_recursion_depth; 今天在mysql 写存储过程递归调用时,发现老是报错(recovery limit 0(as set by the max_sp_recursion_depth));后来百度下发现 max_sp_recursion_depth设置不对; 这个修改涉及到全局和session级修…...

论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer

Related Work Self-supervised 学习目的是在无人工标注的情况下通过自定制的任务(hand-crafted pretext tasks)学习丰富的表示。 Abstract 使用自监督学习为卷积网络(CNN)学习表示已经被验证对视觉任务有效。作为CNN的一种替代…...

遥感数据与作物模型同化应用:PROSAIL模型、DSSAT模型、参数敏感性分析、数据同化算法、模型耦合、精度验证等主要环节

查看原文>>>遥感数据与作物模型同化实践技术应用 基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具,可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系,为不同条件下作物生长发育及…...

Navicat15工具连接PostgreSQL15失败

1.错误现象及原因 错误现象: 错误原因: postgresql 15版本中 pg_database 系统表把 datlastsysoid 列删除了,所以造成了此错误。 2.解决方法 (1)将Navicat工具更新到官网最新版本。 (2)更换…...

开源AI家庭自动化助手-手机控制家庭智能家居服务

产品简介 将本地控制和隐私放在首位的开源家庭自动化。由全球开发者和 DIY 爱好者社区提供支持。非常适合在 Raspberry Pi 或本地服务器上运行。 功能介绍 1. 控制面板在控制面板,你可以查看家庭的灯光,温度,门铃,音响&#xf…...

解决CSS定位错乱/疑难杂症的终极绝招==》从样式污染开始排查

我们接手他人或者第三方项目的时候,有时候会遇到一些莫名其妙的问题: 明明自己的样式写的没有问题,但是网页上却显示的乱七八糟的,或者效果完全出不来。 案例如下: 这里只用了很典型的flex弹性布局,并没有…...

【笔记】《C++性能优化指南》Ch3 测量性能

【笔记】《C性能优化指南》Ch3 测量性能 1. 优化思想1.1 专业的性能测试流程1.2 优化准则1.2.1 90/10规则1.2.2 Amdahl定律 2. 进行实验2.1 记实验笔记2.2 测量基准性能并设定目标2.3 你只能改善你能够测量的 3. 分析程序执行3.1 实现分析器的方式3.2 分析器的优缺点 4. 测量长…...

2023大数据面试总结

文章目录 Flink(SQL相关后面专题补充)1. 把状态后端从FileSystem改为RocksDB后,Flink任务状态存储会发生哪些变化?2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite?3. watermark 到底…...

udev自动创建设备节点的机制

流程框图如下 自动创建 1 内核检测到设备插入后,会发送一个uevent事件到内核中,并提供有关硬件设备的信息。 2 udevd守护程序收到uevent事件后,创建一个设备类,(向上提交目录信息),会在内核中…...

访问局域网内共享文件时报错0x80070043,找不到网络名

我是菜鸡 此篇只为分享一个我遇到的很简单的但是排查了好久的小问题。 我的网络环境是在校园网内, 自己的办公电脑设置了固定IP:10.11.128.236,同事电脑IP为:10.11.128.255 本人需要访问同事在局域网内分享的文件,…...

Java定时器

对于定时器的设定,想必大家在不少网站或者文章中见到吧,但是所谓的定时器如何去用Java代码来bianx呢??感兴趣的老铁,可以看一下笔者这篇文章哟~~ 所谓的定时器就是闹钟!! 设定一个时间&#x…...

科普js加密时出现的错误

当你在使用Babel解析JavaScript代码时,可能会遇到一个错误信息:“Deleting local variable in strict mode”(在严格模式下删除本地变量)。这个错误信息通常表示你正在尝试删除一个使用let或const关键字声明的变量。在JavaScript的…...

MYSQL优化——B+树讲解

B-/B树看 MySQL索引结构 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树.它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中; 任何一…...

Rokid Jungle--Station pro

介绍和功能开发 YodaOS-Master操作系统:以交换计算为核心,实现单目SLAM空间交互,具有高精度、实时性和稳定性。发布UXR2.0SDK,为构建空间内容提供丰富的开发套件 多模态交互 算法原子化 多种开发工具协同 多生态支持 骁龙XR2…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...