信息泄漏是指在正常情况下不能被普通用户访问的敏感信息没有被应用程序所保护,能够直接访问。就web来说这种类型的问题往往会带来巨大的危害,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。
敏感数据包括但不限于:口令、密钥、证书、会话标识、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等。
在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据。主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露。
漏洞原理
- 未能从公共内容中删除内部内容。例如,在生产环境中,用户有时可以看到开发人员在加价中的评论。
- 网站及相关技术配置不安全。例如,如果无法禁用调试和诊断功能,有时可能会为攻击者提供有用的工具,帮助他们获取敏感信息。默认配置也会使网站变得脆弱,例如,通过显示过于冗长的错误消息。
- 应用程序的设计和行为缺陷。例如,如果网站在出现不同错误状态时返回不同的响应,这也可以允许攻击者列举敏感数据,例如有效的用户凭据。
漏洞危害
- 扫描内网开放服务
- 向内部任意主机的任意端口发送payload来攻击内网服务
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,例如直接SQL注入、XSS攻击等
- 利用file、gopher、dict协议读取本地文件、执行命令等
1、爬虫文件
1.如/robots.txt, /sitemap.xml会列出特定目录不让爬虫爬取(在bp的sitemap里可能找不到,需手动测试)
2.Sitemap 使用XML格式来记录整个网站的信息并供Google读取(哪些网页最重要,以及更改频率),是对原来robots.txt的扩展,使搜索引擎能更快更全面的收录网站的内容
2、目录信息
1.由于网站存在配置缺陷,存在目录可浏览,致使网站很多隐私文件与目录泄露(如备份文件、配置文件等),攻击者可对此进一步的利用
2.Web服务器可以配置为自动列出没有索引页的目录的内容。这可以帮助攻击者快速识别给定路径上的资源,并直接分析和攻击这些资源。它尤其增加了目录中不希望用户访问的敏感文件(如临时文件和故障转储)的暴露。
3、越权访问
1.个人中心、个人资料、我的帐户等页面会包含敏感信息(如email,电话号码等)
当存在逻辑缺陷时,可能使攻击者可以越权访问其他用户的数据
2.如:GET /user/personal-info?user=修改user参数,越权访问
4、开发注释、js文件
1.F12:测试阶段,可能在HTML中写有关敏感信息的注释(如测试账号),部署到生成文件前,通常会删除
2.JS文件:可能包含目录文件、接口文件、秘钥、加密算法等
5、错误提示
1.错误消息,有的会有提示,有的关闭了提示,靠自己分析不同测试时候页面差别(如明显差别就是字节)
2.当有提醒时,可能会提示应该输入什么消息、或数据类型,利于攻击者更加准确进行测试
3.详细的错误消息,可以提供有关网站使用的技术信息(如数据库类型、模板类型、服务器版本号、开源框架信息等),进一步针对相关信息,查找常见配置错误或危险的默认设置
6、调试信息
调试时,许多网站会生成自定义错误消息和日志,包含应用程序行为的大量信息(可能包含用于发起攻击的重要信息,如可控变量的值、中间件的主机名和登录凭据、服务器文件和目录、加密密钥等)
7、备份等目录文件
1.源代码访问权限(源代码中可能有敏感数据,如账号密码、GitHub的开源项目等)
2.使用vim编辑的时候,vim会在被编辑文件同一目录下,创建一个名为filename.swp的文件,记录我们的动作
3.index.phps、.bak、/tz.php等形式
4./.git(GitHack)
5./.svn(Seay-SVN)
6.域名解析记录
7.访问/editor
8.数字的临界值
9.查看/db/db.mdb将文件后缀改为txt打开(mdb文件是早期的asp+access架构的数据库文件)
10.备份的sql文件会泄露敏感信息,还提示了backup.sql
8、配置不安全
网站扩展的第三方技术(关注使用的第三方相关的配置权限)
9、版本控制历史
开发一般都是使用某种形式的版本控制系统(如Git、SVN)一般通过目录扫描发现,或者手动在URL后测试,若配置不当,可能会将.git、.svn文件直接部署上线,从而导致泄露
1.git版本控制
利用工具:GitHack
默认Git项目将其所有版本控制数据存储在.git文件夹中,虽无法获得完整的源代码, 但可以阅读更改的代码段,这仍然可能存在敏感数据,若可直接访问/.git,并下载到本地用Git打开,以访问网站的版本控制历史记录
2.svn版本控制
利用工具:Seay-SVN、dvcs-ripper工具中的rip-svn.pl脚本进行clone
10、Web敏感信息
1.phpinfo()信息泄露
http://[ip]/test.php
http://[ip]/phpinfo.php
2.测试网页泄露在外网test.cgi、phpinfo.php、info.php等
3.编辑器备份文件泄漏在外网
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版本等
11.用户信息泄露
1.评论区
1、如显示用户手机号或邮箱等,中间的一段数字会被加密(1999********999)若加密不当,抓包查看返回包,可能直接显示明文,或意外找到其他参数。
2、评论区互动交流(如追加评论,商家回复,@功能,搜索引擎的爬虫,及秒杀成功等阶段)通过抓包进行分析
2.转账页面
1、如建行转账时,需要输入对方的姓名,然后在数据库中进行验证。类似的验证地方通过抓包,看是否会泄露用户的其他信息(如电话等)。
2、历史转账记录等地方,抓包分析,看是否会泄露。
3.搜索框
看搜索是否会意外搜索到用户信息
4.个人页面
若存在可以返回敏感的信息,则对参数进行修改,尝试越权访问
5.客服
进行社工
6.上传/更新数据处
1、常见的有头像上传,查看头像链接,会有一个URL地址(还有上传证件等)
若没有进过特别复制的处理,还是有可能进行任意查看(服务器URL地址泄露)
2、修改资料,如地址等
尝试越权,当权限未处理好,可能有任意用户查看
在最后一步,修改用户名,尝试越权修改
3、子账号等下级处
通过对下级账号处修改ID等参数,可能有任意账户查看
4、如下单处
抓包修改账号参数,可能就可能使用别人账号下单,可能就可以查看别人的用户信息
参考资料:https://blog.csdn.net/qq_53079406/article/details/127974676
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)