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. 控制面板在控制面板,你可以查看家庭的灯光,温度,门铃,音响…...
解决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…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
