敏感信息泄露


在这里插入图片描述

0x01 漏洞简介

敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等。

在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据。主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露.

0x02 漏洞是怎么发生的

  • 未能从公共内容中删除内部内容。例如,在生产环境中,用户有时可以看到开发人员在加价中的评论。
  • **网站及相关技术配置不安全。**例如,如果无法禁用调试和诊断功能,有时可能会为攻击者提供有用的工具,帮助他们获取敏感信息。默认配置也会使网站变得脆弱,例如,通过显示过于冗长的错误消息。
  • 应用程序的设计和行为缺陷。例如,如果网站在出现不同错误状态时返回不同的响应,这也可以允许攻击者列举敏感数据,例如有效的用户凭据。

0x03 漏洞危害

  1. 扫描内网开放服务
  2. 向内部任意主机的任意端口发送payload来攻击内网服务
  3. DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
  4. 攻击内网的web应用,例如直接SQL注入、XSS攻击等
  5. 利用file、gopher、dict协议读取本地文件、执行命令等

0x04 测试方法

1、检测形式多样,工具爬虫扫描得到敏感文件的路径,从而找到敏感数据,主要是还是通过关键词爆破。
2、手工挖掘,根据web容器或者网页源代码的查看,Github,找到敏感信息。

操作系统版本

  • 可用nmap扫描得知

中间件的类型、版本

  • http返回头
  • 404报错页面
  • 使用工具(如whatweb)
  • 可用whatweb、cms_identify

Web敏感信息

  • phpinfo()信息泄露
http://[ip]/test.php
http://[ip]/phpinfo.php
  • 测试网页泄露在外网

test.cgi、phpinfo.php、info.php等

  • 编辑器备份文件泄漏在外网
http://[ip]/test.php.swp
http://[ip]/test.php.bak
http://[ip]/test.jsp.old
http://[ip]/cgi~
  • 版本管理工具(如git)文件信息泄露
http://[ip]/.git/config
http://[ip]/CVS/Entriesp
http://[ip]/.svn/entriesp
  • HTTP认证信息泄露
http://[ip]/basic/index.php
  • 管理后台地址泄露
http://[ip]/login.php
http://[ip]/admin.php
http://[ip]/manager.php
http://[ip]/admin_login.php
  • 泄露员工邮箱、分机号码
泄露邮箱及分机号码可被社工、也可生成字典。
  • 错误页面暴露信息
mysql错误、php错误、暴露cms版本等
  • 探针文件
  • robots.txt
  • phpMyAdmin
  • 网站源码备份文件(www.rar/sitename.tar.gz/web/zip等)
  • 其他

网络信息泄露

DNS域传送漏洞运维监控系统弱口令、网络拓扑泄露、zabbix弱口令、zabbix sql注入等

第三方软件应用

github上源码、数据库、邮箱密码泄露

敏感信息搜集工具

https://github.com/ring04h/weakfilescan
https://github.com/lijiejie/BBScan
whatweb
dnsenum
github

0x05靶机演示

错误信息导致的信息泄露

漏洞在于,错误信息给的太详细了。
以BurpSuite的在线实验室为例:Information disclosure in error messages
1:随意打开一个页面
在这里插入图片描述

2:使用SQL注入中用到的报错注入,在目标URL中添加一个'即可
在这里插入图片描述

调试数据导致的信息泄露

出于调试目的,许多网站生成自定义错误消息和日志,其中包含有关应用程序行为的大量信息。虽然此信息在开发过程中是有用的,但如果在生产环境中泄露,它对攻击者也非常有用。
调试消息有时可能包含用于开发的重要信息,包括:

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

调试信息有时可能记录在单独的文件中。如果攻击者能够访问此文件,它可以作为了解应用程序运行时状态的有用参考。

以BurpSuite的在线实验室为例:Information disclosure on debug page
1:打开页面,F12找到debug
在这里插入图片描述

2:BurpSuite找到刚才访问的站点
在这里插入图片描述

在这里插入图片描述

3:站点地图中找到信息泄露出的页面,发送到重放模块中
在这里插入图片描述

4:根据提示,在重放结果中搜索目标
在这里插入图片描述

5:结果搜索出来两个,试一下哪个是答案
在这里插入图片描述

6:答案提交成功
在这里插入图片描述

备份文件导致的信息泄露

漏洞成因,如标题所示
以BurpSuite的在线实验室为例:Source code disclosure via backup files
1:BurpSuite抓包,然后打开页面
在这里插入图片描述

2:网站给出的提示信息如下
在这里插入图片描述

3:根据页面的URL,从站点地图中找出目标
我这里,除了点意外,经核查,正常情况下URL栏中应该出现一个/robots.txt的URL,但是我这里没出现,那就直接使用结果吧
在这里插入图片描述

4:在访问的页面后面添加/backup,会发现网站存在备份文件泄露
在这里插入图片描述

5:点开文件,复制答案
在这里插入图片描述

6:提交答案
在这里插入图片描述

在这里插入图片描述

由于配置不当引发的信息泄露

实验室的管理界面具有身份验证旁路漏洞,详情参见实验室描述
以BurpSuite的在线实验室为例:Authentication bypass via information disclosure
1:打开页面,长这个样子
在这里插入图片描述

2:根据提示信息,我们去找访问根目录的那条请求
在这里插入图片描述

3:将其发送到重放模块中
在这里插入图片描述

4:拿到如下结果
在这里插入图片描述

5:设置如下代理,Burp 代理将在每次发送的请求中添加此标题:X-Custom-IP-Authorization: 127.0.0.1
在这里插入图片描述

6:回到页面,点击我的账户
在这里插入图片描述

7:随便输入一个账密,然后留意页面变化,出现了管理员面板
在这里插入图片描述

8:把Carlos用户删除掉,过关
在这里插入图片描述

0x06 实战演示

致远OA A6 initDataAssess.jsp 用户敏感信息泄露

漏洞描述

致远OA A6 initDataAssess.jsp 存在用户敏感信息泄露
感信息泄露
可以通过得到的用户名爆破用户密码进入后台进一步攻击

获取目标

fofa搜索:title=“致远A8+协同管理软件.A6”

漏洞复现

访问下列URL泄露用户信息

http://xxx.xxx.xxx.xxx/yyoa/assess/js/initDataAssess.jsp

在这里插入图片描述

0x07漏洞修复

完全防止信息披露是棘手的,因为它可能发生的方式种类繁多。但是,你可以遵循一些一般的最佳实践,以最大限度地降低此类漏洞渗透到你自己的网站的风险。

  • 确保参与制作网站的每个人都充分了解哪些信息被认为是敏感的。有时看似无害的信息对攻击者比人们意识到的要有用得多。突出这些危险有助于确保你的组织更安全地处理敏感信息。
  • 尽可能多地使用通用错误消息。
  • 仔细检查生产环境中是否禁用任何调试或诊断功能
  • 确保你充分了解你实施的任何第三方技术的配置设置和安全影响。花时间调查和禁用任何你实际上不需要的功能和设置。

更进一步的说明:
1、禁止在代码中存储敏感数据:禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。用于加密密钥的密钥可以硬编码在代码中。
2、禁止密钥或帐号的口令以明文形式存储在数据库或者文件中:密钥或帐号的口令必须经过加密存储。例外情况,如果Web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不用强制遵循该规则,将该配置文件的属性改为只有属主可读写。
3、禁止在cookie中以明文形式存储敏感数据:cookie信息容易被窃取,尽量不要在cookie中存储敏感数据;如果条件限制必须使用cookie存储敏感信息时,必须先对敏感信息加密再存储到cookie。
4、禁止在隐藏域中存放明文形式的敏感数据。
5、禁止用自己开发的加密算法,必须使用公开、安全的标准加密算法。
6、禁止在日志中记录明文的敏感数据:禁止在日志中记录明文的敏感数据(如口令、会话标识jsessionid等),防止敏感信息泄漏。
7、禁止带有敏感数据的Web页面缓存:带有敏感数据的Web页面都应该禁止缓存,以防止敏感信息泄漏或通过代理服务器上网的用户数据互窜问题。
8、应根据业务特点定义出系统存储的敏感信息。
9、敏感信息在存储、传输、显示时应进行安全处理,可采用的处理方式为加密或脱敏。
10、敏感信息不应使用GET方式提交到服务器。
11、用户密码为最高级别的敏感信息,在存储、传输、显示时都必须加密。
12、需要选择可靠的加密算法,优先选择不对称加密算法,不得使用BASE64等编码方式进行“加密”
13、对于一些系统默认报错页面应重新进行设计自定义报错页面,以免暴露系统敏感信息。

参考

Information disclosure vulnerabilities
How to find and exploit information disclosure vulnerabilities
PortSwigger Academy | Information disclosure vulnerabilities : 信息泄漏漏洞
敏感信息泄露实战
Information disclosure on debug page (Video solution)
Source code disclosure via backup files (Video solution)

猜你喜欢

转载自blog.csdn.net/weixin_44288604/article/details/119886631