信息泄露漏洞详解

参考文章

本文仅供交流学习使用!


概述


总结


一、漏洞介绍

信息泄露指网站无意向用户泄露敏感信息.可能包括以下内容:

  • 有关其他用户私密数据的,财务信息,个人身份信息等
  • 敏感的商业数据
  • 有关网站技术细节,架构,如源代码等

二、漏洞原理

信息泄露可能是不慎泄露给浏览该网站信息用户的,也有可能是攻击者通过恶意的交互从网站获得数据。
一些敏感信息泄露的示例:

  • 通过robots.txt泄露网站隐藏目录,文件.或者站点结构
  • 网站站点的备份文件未删除导致的泄露,可能会泄露网站源代码
  • 没有正确处理网站的一些错误消息,在错误消息中泄露数据库表,字段等
  • 一些高度敏感的用户信息,银行账号等泄露
  • 在源代码中泄露数据库账号密码,等等(GitHub)
  • 网站某些程序的细微差别提示是否存在某些资源,用户名

三、漏洞危害

根据信息泄露的程度判断,


四、利用前提

详情请看挖掘利用


五、挖掘利用

1、爬虫文件

例如robots.txt, sitemap.xml这些文件会列出特定目录不让爬虫爬取,因为它们可能包含敏感信息,在burpsuite的sitemap里面可能看不到它们,需要手动测试一下,看是否存在有用的东西

2、目录信息泄露

有的网站因为不当的配置可能暴露了网站目录。

3、越权访问

用户的个人资料或“我的帐户”页面通常包含敏感信息 , 例如用户的电子邮件地址,电话号码,API密钥等。某些网站包含逻辑缺陷,这些缺陷可能使攻击者可以利用这些页面来查看其他用户的数据。
详情请看:[[001.越权漏洞]]

4、注释或js文件

开发者可能在HTML中写有关敏感信息的注释,部署到生成文件前,通常会删除.但是可能有时会因为有些人没有安全意识而忘记,也有可能是js代码会保留一些敏感信息。
详情请看:[[002.js信息泄露]]
如下图,如果在该代码中,泄露了目录’admin-f6zfiz’
在这里插入图片描述

5、错误消息

密切注意测试期间遇到的所有错误消息。
错误消息可能提醒测试人员应该输入什么消息或者什么数据类型的消息,这可以帮助我们识别可利用的参数来缩小攻击范围。
详细的错误消息还可以提供有关网站使用的技术信息 .如数据库类型,模板类型,服务器版本号等。还有可能暴露出网站使用的某种开源框架 , 在这种情况下,可以下载研究源代码,可能有意外收获

6、调试信息

出于调试目的,许多网站会生成自定义错误消息和日志,其中包含有关应用程序行为的大量信息。
调试消息有时可能包含用于发起攻击的重要信息,包括:

  • 可以通过用户输入操作的关键会话变量的值
  • web中间件的主机名和登录凭据
  • 服务器上的文件和目录名称
  • 用于加密通过客户端传输的数据的密钥

7、备份文件

获得源代码访问权限使攻击者更容易理解应用程序的行为并构造高严重性攻击。
敏感数据有时甚至被写在在源代码中,如数据库IP,密码(程序员提交到GitHub的开源项目)
有时候,网站自身可能由于某些原因,泄露其源代码:比如用Vim编程,在修改文件后 系统会自动生成一个带~的备份文件 , 某些情况下可以对其下载进行查看还有一些文件备份会在文件后面加上.bak

8、配置不安全导致信息泄露

常见于网站使用第三方技术处,因为第三方技术的很多配置选项并不一定被使用它们的人员所理解,在其他情况下,开发人员可能会忘记在生产环境中禁用各种调试选项

9、版本控制历史

1.git版本控制

几乎所有网站都是使用某种形式的版本控制系统(例如Git)开发的,默认情况下,Git项目将其所有版本控制数据存储在名为.git的文件夹中,有时,网站在生产环境中公开此目录。在这种情况下,可能只需浏览到即可访问它/.git。而且还可以下载到本地,用本地安装的Git打开它,以访问网站的版本控制历史记录,虽然无法获得完整的源代码, 但是可以阅读更改的代码片段,这仍然可能存在某些敏感数据

查看历史记录
git log

切换版本
git reset

对比两次提交
git diff

查看版本差别
git diff + id号

Stash
当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。

备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容

git stash

从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash。
由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash

git stash pop

清空git栈

 git stash clear

2.svn版本控制

当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
版本控制工具:dvcs-ripper
注意Linux下运行.pl文件需要线下载perl

下载perl
apt-get install perl

执行
perl xxx.pl

1.对目标url进行扫描,确认是.svn泄露后,使用dvcs-ripper工具中的rip-svn.pl脚本进行clone。
在这里插入图片描述
2.查看文件
进入.svn文件夹,pristine存放的是原始的文件,可能包含备份的文件。
在这里插入图片描述


六、修复防范

  • 网站开发人员要明确哪些信息是敏感信息
  • 针对错误消息正确处理
  • 检查网站开发环境中的任何调试或者诊断功能是否禁用
  • 了解站点所使用的第三方技术的配置设置与安全隐患.花时间禁用实际上不需要的任何功能和设置

七、提出问题

猜你喜欢

转载自blog.csdn.net/weixin_44023442/article/details/113098827