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

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

文章目录

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

1.常见形式:

常见链接形式:

常见参数:

2.利用方式:

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

4.逆向:

5.防护策略:

总结


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

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


1.常见形式:

常见链接形式:
php 复制代码
download.php?path=

down.php?file=

data.php?file=

download.php?filename=
常见参数:
php 复制代码
&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

下载成功。

  1. 我们在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应用系统中用户上传文件的功能,在上传过程中上传恶意文件,这些恶意文件在服务器端被解析时产生漏洞,从而导致攻击者能够在服务器上执行任意代码的一种安全漏洞。

相关推荐
qmx_072 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
北岛寒沫4 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
GEEKVIP4 小时前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
everyStudy4 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
草莓屁屁我不吃5 小时前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
无心使然云中漫步5 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者5 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_6 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
麒麟而非淇淋7 小时前
AJAX 入门 day1
前端·javascript·ajax
2401_858120537 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab