目录
- 0x01 漏洞简介
- 0x02 漏洞是怎么发生的
- 0x03 漏洞危害
- 0x04 测试方法
- 操作系统版本
- 中间件的类型、版本
- Web敏感信息
- 网络信息泄露
- 第三方软件应用
- 敏感信息搜集工具
- 0x05靶机演示
- 错误信息导致的信息泄露
- 调试数据导致的信息泄露
- 备份文件导致的信息泄露
- 由于配置不当引发的信息泄露
- 0x06 实战演示
- 漏洞描述
- 获取目标
- 漏洞复现
- 0x07漏洞修复
- 参考
0x01 漏洞简介
敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等。
在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据。主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露.
0x02 漏洞是怎么发生的
- 未能从公共内容中删除内部内容。例如,在生产环境中,用户有时可以看到开发人员在加价中的评论。
- **网站及相关技术配置不安全。**例如,如果无法禁用调试和诊断功能,有时可能会为攻击者提供有用的工具,帮助他们获取敏感信息。默认配置也会使网站变得脆弱,例如,通过显示过于冗长的错误消息。
- 应用程序的设计和行为缺陷。例如,如果网站在出现不同错误状态时返回不同的响应,这也可以允许攻击者列举敏感数据,例如有效的用户凭据。
0x03 漏洞危害
- 扫描内网开放服务
- 向内部任意主机的任意端口发送payload来攻击内网服务
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,例如直接SQL注入、XSS攻击等
- 利用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)