敏感信息泄露概述
由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到。 比如:
---通过访问url下的目录,可以直接列出目录下的文件列表;
---输入错误的url参数后报错信息里面包含操作系统、中间件、开发语言的版本或其他信息;
---前端的源码(html,css,js)里面包含了敏感信息,比如后台登录地址、内网接口信息、甚至账号密码等;类似以上这些情况,我们成为敏感信息泄露。敏感信息泄露虽然一直被评为危害比较低的漏洞,但这些敏感信息往往给攻击着实施进一步的攻击提供很大的帮助,甚至“离谱”的敏感信息泄露也会直接造成严重的损失。 因此,在web应用的开发上,除了要进行安全的代码编写,也需要注意对敏感信息的合理处理。
你可以通过“i can see your abc”对应的测试栏目,来进一步的了解该漏洞。
在 Pikachu 靶场中,能观察到多种典型的敏感信息泄露场景:
- 目录列表暴露:当用户访问特定 URL 下的目录时,系统会直接将该目录下的文件列表呈现出来。攻击者一旦获取这些信息,就可能知晓系统文件结构,进而锁定关键配置文件或敏感数据文件,为后续攻击指明方向。例如,若知晓配置文件所在位置,攻击者可能尝试下载并分析其中的数据库连接信息等。
- 错误信息泄露:当输入错误的 URL 参数后,系统报错信息中会不慎包含操作系统、中间件以及开发语言的版本等关键信息。这些信息对于攻击者而言,是了解目标系统技术架构的重要线索。不同版本的软件往往存在已知的漏洞,攻击者可据此针对性地准备攻击手段。例如,若得知目标系统使用的某版本中间件存在特定远程代码执行漏洞,便可能发动相应攻击。
- 前端源码信息暴露:在前端的源码,如 HTML、CSS、JS 文件中,包含敏感信息。这其中可能有后台登录地址、内网接口信息,甚至是账号密码等。若前端源码被攻击者获取,后台登录地址的泄露可能使攻击者直接尝试对后台进行暴力破解;内网接口信息的暴露则可能成为攻击者进一步渗透内部网络的突破口;而账号密码的泄露,无疑会直接导致系统控制权的丧失。
测试题目—— i can see your abc
登录网页:pikachu/vul/infoleak/findabc.php#
F12查看网页源代码,前端源码信息泄露。发现泄露测试账号:lili/123456。
通过泄露账号登录成功!
登录成功之后发现网页变为pikachu/vul/infoleak/abc.php
防止敏感信息泄露的措施
- 合理设计:网站的设计应该合理,避免不必要的信息泄露。
- 信息隐藏:敏感信息应该被隐藏,避免被未经授权的用户获取。
- 安全编码:开发人员应该遵循安全编码规范,避免在代码中泄露敏感信息。
- 错误信息处理:错误信息应该被处理,避免包含敏感信息。
- 定期审计:网站应该定期进行审计,发现和修复可能存在的敏感信息泄露漏洞。
尽管在常见的漏洞评级中,敏感信息泄露常被评为危害程度较低的漏洞,但在 Pikachu 靶场模拟的场景以及实际网络环境中,这些敏感信息却能为攻击者实施后续攻击提供极为关键的支持。严重的敏感信息泄露事件,正如靶场中所模拟的极端情况一样,极有可能直接造成严重的经济损失、数据丢失或系统瘫痪等后果。