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…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
Git 命令全流程总结
以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理: 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
