【网络安全】-文件下载漏洞-pikachu

news2024/9/20 10:43:38

文件操作漏洞包括文件上传漏洞,文件包含漏洞,文件下载漏洞。

文章目录 

前言  什么是文件下载漏洞?

1.常见形式:

  常见链接形式:

  常见参数:

2.利用方式:

3.举例:pikachu不安全的文件下载

4.逆向:

5.防护策略:

总结


前言  什么是文件下载漏洞?

网站对用户查看和下载文件不做限制,使hacker可以利用利用这些文件进行提权操作,完全控制服务器,进而以服务器为跳板攻击网站其他系统,进一步扩大攻击范围。


1.常见形式:

常见链接形式:
download.php?path=

down.php?file=

data.php?file=

download.php?filename=
常见参数:
&src=

&inputfile=

&path=

&data=

通常情况下,在某网站上看见以上链接或参数,该网站极有可能具有文件下载漏洞。

2.利用方式:

1.下载常规的配置文件

2.下载各种.log文件

3.下载业务文件进行代码审计,找出漏洞进一步打下服务器

3.举例:pikachu不安全的文件下载

我们点击下载,

右击复制下载链接:

科比:http://pikachu-master/vul/unsafedownload/execdownload.php?filename=kb.png

其它同理。

艾伦:http://pikachu-master/vul/unsafedownload/execdownload.php?filename=ai.png

发现链接形式(execdownload.php?filename=)

与文件下载漏洞(download.php?filename=)相符。

证明我们可以在此构造url下载服务器/本地的任意文件。

服务器:对皮卡丘网站,它都服务器为搭建皮卡丘靶场的盘(我的是D盘)

本地:C盘。

分析:

url:http://pikachu-master/vul/unsafedownload/execdownload.php?filename=ai.png

对应D:\phpstudy_pro\WWW\pikachu-master\vul\unsafedownload\download

1.我们在pikachu-master/vul/unsafedownload/路径下添加一个图片a.png

返回靶场下载:

http://pikachu-master/vul/unsafedownload/execdownload.php?filename=ai.png

下载成功。

2. 我们在pikachu-master路径下添加一个图片a.png

返回靶场下载:

http://pikachu-master/vul/unsafedownload/execdownload.php?filename=../../../a.png

向上../返回三个目录

下载成功。

接着我们试试其它文件

http://pikachu-master/vul/unsafedownload/execdownload.php?filename=../../../.DS_Store

下载成功。

4.逆向:

通过改变download.php?filename=的路径我们可以下载/pikachu-master/vul/unsafedownload/三个目录中的任意文件。

5.防护策略:

严格的验证和过滤:只允许下载经过白名单列出的特定文件类型,这可以有效阻止用户下载私密文件。

随机文件名和存储路径:为上传和下载的文件生成随机的文件名和存储路径,以防止攻击者预测或猜测文件的存储位置。

使用防火墙:防火墙waf可以记录所有文件下载行为,进而阻止那些试图绕过正常访问控制或下载敏感文件的请求。


总结

文件上传漏洞是指hacker利用网站或web应用系统中用户上传文件的功能,在上传过程中上传恶意文件,这些恶意文件在服务器端被解析时产生漏洞,从而导致攻击者能够在服务器上执行任意代码的一种安全漏洞。

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

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

相关文章

大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例

Flink SQL Flink SQL 是 Apache Flink 提供的一种高层次的查询语言接口,它基于 SQL 标准,为开发者提供了处理流式数据和批处理数据的能力。Flink SQL 允许用户使用标准 SQL 查询语言在数据流和数据表上执行复杂的操作,适用于多种应用场景&am…

如何模拟一个小程序项目打包的流程

一、Uni-app 执行 yarn run dev:mp-weixin后会发生什么 (一)准备工作 克隆项目:创建以 typescript 开发的工程(如命令行创建失败,请直接访问 https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts.z…

htop、free -h对于可用内存显示不同的区别

htop中Mem包含了缓存和缓存区, free -h查看 used free buff/cache 上面htop显示的mem, 1、我看我还能用多少内存,看哪里 看free -h 中的free 2、buff/cache 是啥 缓存缓存区占用,htop显示的效果是把这个也算在一块了&#…

C# WinForm:禁用Panel容器滚动条自动移动位置的功能

1.在WinForm项目中新建一个类: 2.类里面的内容,重写Panel的这个方法 3.编译后这个控件就出现在工具箱了 4.然后用这个新Panel控件就好了 5.完事大吉。

【Python机器学习系列】建立super learner模型预测心脏疾病(案例+源码)

这是我的第353篇原创文章。 一、引言 Super learner 是 Vander Laan et al.(2007)提出的一种基于损失函数的组合预测的学习算法。Super learner算法基于交叉验证理论,通过加权的方式组合多种候选算法,从而构造一种最小交叉验证风…

Hadoop集群开启后使用jps命令查看发现没有NameNode、SecondaryNameNode、DataNode、NodeManager进程,缺少进程。

今天安装Hadoop集群,安装完成使用jps命令查看发现没有NameNode进程,别人jps后都有6个在跑,我就两个。看到别人的 我的👉。都看懵了。。。 处理NameNode不启动的问题 检查ip地址是否是namenode所在节点的ip。 要检查 IP 地址是否是 NameNode 所在节点的 IP 地址,你可以通…

大数据之Spark(二)

9.4.3、RDD持久化 RDD之间进行相互迭代计算(Transformation的转换),当执行开启,新RDD的生成代表旧RDD消失。如果有的rdd需要重复使用就需要将rdd缓存,rdd.cache()或rdd.persist()。清理缓存rdd.unpersist() 缓存特点&…

Python项目虚拟环境(超详细讲解)

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

android 生SHH,并配置

1. ssh-keygen -t rsa -b 4096 -C "XXXXxx.com" 2. vim ~/.ssh/config 新建一个文件:~/.ssh/config:并将下列的内容放入: Host * HostKeyAlgorithms ssh-rsa PubkeyAcceptedKeyTypes ssh-rsa 4.得到XXX.pub去添加ssh 5.克隆

【Java】方法1_定义方法,完整格式,原理

文章目录 前言 一、方法是什么? 方法的完整格式 1、有返回值的函数 2、无返回值的函数 二、方法使用常见的问题三、方法在计算机中执行的原理总结 前言 学习记录方法 一、方法是什么? 方法是一种语法结构,它可以把一段代码封装成一个功能…

python绘制3d建筑

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d.art3d import Poly3DCollection# 随机生成建筑块数据 def generate_building_blocks(num_blocks, grid_size100, height_range(5, 50), base_size_range(10, 30)):buildings []for _ in range(…

<<编码>>第 11 章 逻辑门电路--开关电路 示例

网络电路 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch11-01-network-circuit.txt 继电器开关电路 info::操作说明 鼠标单击开关切…

python-游戏自动化(二)(OpenCV图像运用基础)

OpenCV OpenCV简介 首先我们来了解一下,OpenCV是什么? OpenCV 是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。 OpenCV现在支持与计算 机视觉和机器学习有关的多种算法,并且正在日益扩展…

基于vue框架的宠爱有佳宠物医疗管理系统4x10z(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物信息,医生,用户挂号,病历记录,科室信息,药物信息 开题报告内容 基于Vue框架的宠爱有佳宠物医疗管理系统开题报告 一、引言 随着现代社会生活节奏的加快,宠物已成为许多家庭不可或缺的一员。宠物不仅带来了欢乐与…

海康威视相机在QTcreate上的使用教程

文章目录 前言:基础夯实:效果展示:图片展示:视频展示: 参考的资料:遇到问题:问题1:int64 does not问题2:LNK2019配置思路(这个很重要)配置关键图片:配置具体过…

HyperWorks二维网格划分与单元连续性

自动网格划分 HyperWorks中为零件定义几何曲面是创建零件壳单元网格的最佳方式。HyperMesh 创建二维网格最有效的方法是使用 Automesh 面板直接在零件的表面创建网格。 Automesh 面板是 HyperMesh 重要的网格划分工具,通过 automesh 可实现单元尺寸、单元密度、单…

TopN问题

100亿个integer数据,如何找到前k个最小值。 也就是问的如何排序最快 堆排序最快 完全二叉树 堆结构其实就是一颗完全二叉树 大根堆和小根堆 大根堆:每一个根节点都大于它的叶子结点 小根堆:每一个根节点都小于它的叶子结点 通过建立大根…

【最新顶刊综述】【多模态学习】Vision + X:A Survey on Multimodal Learning in the Light of Data

VisionX:基于数据的多模态学习综述 论文链接 0.论文摘要和信息 摘要 摘要——我们以多感官的方式感知世界并与世界交流,不同的信息源由人脑的不同部分复杂地处理和解释,构成一个复杂但和谐统一的感知系统。为了赋予机器真正的智能&#x…

核心系统用PG了,抠脑壳的权限,搞晕了!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、 高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

ThinkPHP8出租屋管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP8出租屋管理系统 一 介绍 此出租屋管理系统基于ThinkPHP8框架开发,数据库mysql,前端Vue3,前后端不分离,系统主要角色为管理员。房租计算器,房东记账收租管理,房…