欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 零基础在实践中学习网络安全-皮卡丘靶场(第八期-Unsafe Filedownload模块)

零基础在实践中学习网络安全-皮卡丘靶场(第八期-Unsafe Filedownload模块)

2025/6/10 3:04:04 来源:https://blog.csdn.net/2404_89737060/article/details/148409450  浏览:    关键词:零基础在实践中学习网络安全-皮卡丘靶场(第八期-Unsafe Filedownload模块)

这期内容更是简单和方便,毕竟谁还没在浏览器上下载过东西,不过对于url的构造方面,可能有一点问题,大家要多练手

介绍

不安全的文件下载概述

文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。

所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!

你可以通过“Unsafe file download”对应的测试栏目,来进一步的了解该漏洞。

个人评价:很常见,因为很多网站都有下载文件的功能,这就是我们的切入点。(对于一些个人网站开发者来说,这是非常重要的防护点,因为服务器可能会产生一些重要文件,但是由于疏忽或者不了解,可能会导致严重的数据泄露特别是服务器的缓存,日志之类的,切记定期回收)

适用场景:所有有下载文件功能的网站都可能有这个漏洞

实际反馈:对于大企当然很难,但是对于一些个人开发者而言,很可能从中获取敏感信息

原理

若后台在拼接下载文件路径时,未对用户传入的文件名进行安全判断,直接将其拼接到路径中,攻击者就可提交精心构造的路径,如../../../etc/passwd,越权下载指定文件,导致后台敏感信息泄露,像密码文件、源代码等

这个漏洞类似于一个图书馆允许你借阅任何一本书,但是一些书籍被屏蔽掉了。如果你知道图书馆的书籍结构,就可以通过去特殊的位置来那些获取那些本该受限的书籍。 (比较恶心,因为实际应用中还是需要一个一个的尝试来确定结构,从而确定漏洞位置)

实践

正如上面的原理说的,我们可以通过构造一些路径来获取信息

我们先来抓个包分析一下

我们可以看到我们的url指向了科比布莱恩的png图片,我们以这里为切入点进行路径构造


../../../index.php

(这里下载的源文件,不是很敏感的文件,但是可以知道,如果没有做这方面的防护,敏感信息迟早要漏完)

或者

../down_nba.php

以此类推,由于我们知道皮卡丘的文件,所以我们可以知道他们的路径和下载文件的名字

但是正常来说我们不可能知道,这就要用到一些"米奇妙妙工具了"(之后会发)

但是手动进行的话,可以帮助我们了解,大家可以自己试试以下内容

配置文件类
- `../../../config.php`:可能会包含数据库连接信息、管理员账号等敏感数据。
- `../../../.env`:在一些现代Web应用中,该文件用于存储环境变量,可能包含各种敏感信息,如数据库凭证、API密钥等。日志文件类
- `../../../logs/error.log`:可能包含应用程序的错误信息,如SQL查询错误、路径泄露等,有时会暴露敏感信息。
- `../../../var/logs/access.log`:记录了用户访问的详细信息,可用于分析用户行为或寻找其他潜在漏洞。源码文件类
- `../../../application/controllers/Admin.php`:获取控制器文件,了解后台管理逻辑。
- `../../../application/models/User_model.php`:获取模型文件,查看用户数据处理逻辑。数据库文件类(如果文件下载漏洞能访问到数据库文件)
- `../../../database.db`:SQLite数据库文件。
- `../../../mydb.sql`:MySQL等数据库的备份文件,可能包含表结构和数据。系统文件类(如果靶场环境允许访问系统文件)
- `../../../../../etc/passwd`:Linux系统用户信息文件(通常用于测试路径遍历)。
- `../../../../../boot.ini`:Windows系统启动配置文件(在Windows环境下)。其他常见文件
- `../../../.git/index`:如果项目使用Git版本控制,访问`.git`目录下的文件可能会暴露项目的所有历史提交信息和代码。
- `../../../robots.txt`:虽然通常不太敏感,但可能会泄露网站的目录结构或禁止访问的路径。

至此,Unsafe Filedownload模块完成

虽然这几期的内容很简单,但是仍然要记住实践,正如圣人王阳明所说

知之真切笃实处即是行,行之明觉精察处即是知

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词