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

相关推荐
XTTX1105 小时前
Vue3+Cesium教程(36)--动态设置降雨效果
前端·javascript·vue.js
未来之窗软件服务6 小时前
服务器运维(二十三) 服务器安全探针封装—东方仙盟练气期
安全·仙盟创梦ide·东方仙盟·安全探针
蓝之白7 小时前
流量分析_SnakeBackdoor-6
web安全·ctf·流量分析·逆向分析
han_7 小时前
从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
前端·javascript·面试
前端小超超8 小时前
ionic + vue3 + capacitor遇到backButton问题
前端·javascript·vue.js
EndingCoder9 小时前
枚举类型:常量集合的优雅管理
前端·javascript·typescript
cute_ming9 小时前
关于基于nodeMap重构DOM的最佳实践
java·javascript·重构
码途潇潇10 小时前
JavaScript 中 ==、===、Object.is 以及 null、undefined、undeclared 的区别
前端·javascript
corpse201010 小时前
Linux监控软件Monitorix 安装部署
linux·安全
飞鸟真人10 小时前
关于python -m http.server的一些安全问题
python·安全·http