【渗透测试专栏】1.1认证和授权类-任意文件下载

news2024/11/17 11:55:07

该系列专栏旨在让漏洞检测变得更简单,只用于学习用途

靶机环境请看专栏前言专栏前言-WooYun漏洞库环境搭建-CSDN博客

一、漏洞描述

任意文件下载漏洞是指应用程序在实现文件下载功能时,由于对用户输入的文件路径等参数未进行严格的过滤和校验,导致攻击者可以通过构造特定的请求,让应用程序下载服务器上的任意文件,包括敏感的系统文件、配置文件、数据库文件等。

二、漏洞等级

高危

三、漏洞检测方法

1、  通过web漏洞扫描工具对网站实施扫描可能发现目录遍历或者任意文件下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。

2、  也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,然后查看其是否可被下载出来。随后可构造下载系统文件。

检查burp,appscan ,acunetix,nikto扫描结果是否有diectory listing,或者下载的路径是否可以自定义任意路径进行下载文件,文件中是否有敏感信息,如信用卡信息、IP、数据库连接池、身份证、账号、密码、手机、邮箱、公司资产、设计图纸、财务报表等

四、漏洞检测

1.AWVS扫描

可以看到存在目录穿越Directing listing漏洞

2.BP扫描

使用bp的扫描可以看到扫描出来目录穿越,及其对应目录

 五、漏洞利用

使用dirsearch工具扫描目标

dirsearch -u http://10.4.7.173 -e *

 dirsearch工具下载

sudo apt-get install dirsearch

可以看到可以访问到目录

我们直接访问

 

导致可以任意下载目录中的内容,造成任意文件下载

六、漏洞修复方案

1、  净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
2、  web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。

什么是 chroot
chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置,就像将web应用放在了一个牢笼里,无法直接访问其他目录。

chroot 实践_chroot 环境有什么作用-CSDN博客


3、  任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。
4、  要下载的文件地址保存至数据库中。
5、  文件路径保存至数据库,让用户提交文件对应ID下载文件。
6、  用户下载文件之前需要进行权限判断。
7、  文件放在web无法直接访问的目录下。
8、  不允许提供目录遍历服务。
9、  公开文件可放置在web应用程序下载目录中通过链接进行下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RAG技术架构与实现原理

本文详细解析了RAG技术,包括其定义、作用、技术架构和检索模块的实现与优化,全面展示了RAG在自然语言处理中的重要性和广泛应用前景。 关注TechLead,复旦AI博士,分享AI领域全维度知识与研究。拥有10年AI领域研究经验、复旦机器人智…

Java_jdk安装配置~java入门

目录 0.总体介绍 1.入门介绍 2.官网 3.关于版本的问题 4.环境变量配置 5.编码修改 6.创建项目 0.总体介绍 下面的这个情况比较复杂,因为遇到了一些别人没有遇到的问题,我会把自己遇到这个问题,到解决这个问题的过程尽可能详细的展示出…

Matplotlib 坐标轴标签,画布标题及图例legend设置

坐标轴标签设置 面向过程 面向过程的方式 使用plt.xlabel()和plt.ylabel()根据就近原则分别设置x轴和y轴的标签. import matplotlib.pyplot as plt import numpy as npx np.linspace(0, np.pi*2, 100) y np.sin(x) y1 np.cos(x)plt.subplot(221) plt.plot(x,y) plt.xlabe…

10 万元预算,竟能打造满足第一性原理计算的高性价比服务器

科学研究的领域中,第一性原理计算占据着至关重要的地位。它要求服务器具备极高的性能,以应对复杂的量子力学计算任务。 第一性原理计算涉及对物质本质的深入探索,需处理海量数据并进行大规模并行计算。第一性原理计算基于量子力学原理&#x…

Pycharm 创建文件,生成文件头注释

Pycharm 创建文件,生成文件头注释 路径:File --> Settings --> Editor --> File and Code Templates --> Python Script # codingutf-8 """ Proj : ${PROJECT_NAME} File : ${NAME}.py Date : ${DATE} ${TIME} Autho…

Docker使用tensorflow/serving镜像部署模型

Docker使用tensorflow/serving镜像部署模型 环境 简单梳理一下使用tensorflow/serving镜像在服务器上部署模型。 首先要保证在linux环境上已经安装好了docker,之后下载tensorflow/serving镜像: #下载镜像 docker pull tensorflow/serving #查看下载的…

Halcon基于组件的模板匹配

Halcon基于组件的模板匹配 基于组件的模板匹配可以说是基于形状的模板匹配的加强版,加强的地方在于,这种方法允许模板中包含多个目标,并且允许目标之间存在相对运动(位移和旋转)。这决定了这种方式不适用于尺寸缩放的…

PDF转PPT,四款神器助你一臂之力!

亲爱的朋友们,你们在日常的工作和生活中有没有遇到过需要将PDF文件转换成PPT格式的情况呢?今天,我就来给大家推荐四款非常好用的工具,让你轻松应对PDF转PPT的难题! 一、福昕转换器 直通车(粘贴到浏览器打…

小阿轩yx-Kubernertes日志收集

小阿轩yx-Kubernertes日志收集 前言 在 Kubernetes 集群中如何通过不同的技术栈收集容器的日志,包括程序直接输出到控制台日志、自定义文件日志等 有哪些日志需要收集 日志收集与分析很重要,为了更加方便的处理异常 简单总结一些比较重要的需要收集…

framework-android启动

1:BootRom->BootLoader->Linux Kernel->Init->Zygote- >SystemServer->Launcher BootLoader 层:主要包括 Boot Rom 和 Boot Loader Kernel 层:主要是 Android 内核层 Native 层:主要是包括 init 进程以及其…

【SM系列】简单说说SM2,SM3,SM4加密算法

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是SM2加密?2.1 应用场景2.2 与RSA算法的区别 三、什么是SM3加密…

AI修复老照片的完整教程来了!

大家好,我是每天分享AI应用的萤火君! 最近老照片修复的项目比较火爆,很多同学都拿到了成果,这个技术上已经没有太大的难度,结合各种工具可以做出不错的效果,但是很多人还不知道如何实现,这篇文…

最常用的100个Python库入门

文章目录 最常用的100个Python库入门命令行界面和参数解析日志和错误处理多媒体处理异步编程Web开发网络和API代码分析和测试数据处理和科学计算数据库和数据存储系统和文件操作安全性机器学习和深度学习其他工具和库任务调度进度条虚拟环境管理异步任务队列文档生成HTML处理SQ…

Web APIs第一天

第一天&#xff1a;DOM获取元素&#xff0c;获取元素&#xff0c;修改属性 声明新变量&#xff0c;一般默认const&#xff0c;如果变量的值不变&#xff0c;则使用const。如果变量的值变化&#xff0c;则使用let。var已经被淘汰了。 <script>const arr [red, pink]arr.…

ESP32!Thonny+MicroPython+ESP32开发环境搭建!!

准备工具&#xff1a; ThonnyMicroPythonESP32 一.Thonny安装 下载地址&#xff1a;Thonny, Python IDE for beginnershttps://thonny.org/ 二.下载esp32环境——根据型号下载 下载地址&#xff1a;MicroPython - Python for microcontrollershttps://micropython.org/dow…

登录页面设计课堂,用8个案例带你学习

本文将以 8个最受欢迎的登录页模板为例&#xff0c;给大家分析想要提升登录页转化率&#xff0c;设计登录页时应该关注的要点 作为设计师&#xff0c;在设计登录页面时&#xff0c;除了要让你的界面设计拥有出色的视觉效果&#xff0c;还要想尽可能地获取新用户&#xff0c;并留…

分享一个使用智狐联创AI平台创建的WordPress分类广告插件

为了提升广告的效果与管理效率&#xff0c;我们开发了一款基于WordPress的分类广告插件&#xff0c;旨在帮助用户根据文章分类方便地显示相关广告。这款插件不仅简化了广告的管理流程&#xff0c;还提高了广告的精准投放。 插件功能概述 1. 广告管理 用户可以通过插件后台轻…

谷歌seo优化有能一步提升的方法吗?

网站优化的方法有很多&#xff0c;但没有一刀切的解决方案。 谷歌SEO绝对不是一项廉价的服务。任何声称能以低价实现显著效果的承诺都值得怀疑。 谷歌SEO是一项需要人力、技术和资源的工作&#xff0c;如果你打算自己做 最少需要一个人的年薪&#xff0c;还要考虑域名、服务器…

Linux中的编译器gcc/g++

目录 一、gcc与g的区别 1.gcc编译器使用 2.g编译器使用 二、gcc/g编译器编译源文件过程 1.预处理 2.编译 3.汇编 4.链接 三、静态库和动态库 1.库中的头文件作用 2.静态库 3.动态库 四、gcc编译器的一些选项命令 一、gcc与g的区别 gcc用于编译C语言代码&#xff…

Echarts可视化大屏数据详解

1、ECharts介绍 1.1、什么是ECharts ECharts是一款由百度开发并开源的数据可视化图表库&#xff0c;旨在帮助开发者通过简单易用的方式实现复杂的数据展示和分析需求。它完全基于 JavaScript 开发&#xff0c;利用 HTML5 的 Canvas 技术进行图形渲染&#xff0c;这使得它能够…