前言
在渗透测试、SRC 漏洞挖掘与护网攻防演练的流程里,信息收集永远是最前置、也最关键的一环,情报搜集的深度直接决定后续攻击面的大小。很多企业会忽略代码托管平台带来的泄露风险,开发人员在日常迭代、本地调试、项目开源备份时,常会随手将配置文件、接口代码、密钥凭证一并上传至 GitHub,各类账号密码、数据库连接信息、内网地址、未公开业务接口、测试后台等敏感内容随之暴露在公网。
一、Github信息收集
有些开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了,埋藏着一些安全隐患,侧面有利于扩大了攻击者、渗透人员对目标的攻击面。
// 具体搜索技巧,请参考Github黑客搜索技巧.pdf
// 这里贴实战案例
目标:xx云
已知主域名:xxxcloud.com
Github信息收集的意义:
- 测试账号/密码
- 数据库外连地址、账号、密码等
- 测试环境、其他未公开的资产(域名、真实ip)
- 未上线的应用程序代码
- …
二、Github信息收集案例
攻防演练及SRC漏洞挖掘中皆可适用…
案例一:
SRC漏洞挖掘案例
- 获取账号密码 ——搜索关键字符:
Code显示有2k个记录,如果觉得一个一个看下来比较繁琐,可以根据语言来进行筛选、
我这里限定的是java,返回的记录是75条,因为记录不多,我就一个一个的过了
然后发现了一个登录地址、账号、密码
验证链接是否能打开,账号密码是否有效
至此,喜提一个弱口令
2、后台越权
请求的请求包是:
// 用于统计发送短信数量的请求
遍历参数 accountIt,发现存在越权
这里我只遍历了部分accountIt,其中total是历史发送消息总数(2019-11-01,2020-03-15)
修改起始时间,发现有5k+条短信
页面上点击导出记录
此时的请求
这里我直接修改accountId为6851,时间2010-11-01,2020-11-15,可越权导出他人记录
返回文件下载链接
该文件泄露了商家账号以及店铺顾客手机号。
可以遍历商家id、下载商家发送短信记录,以及店铺顾客个人信息(手机号)
其中有个商家近十年内发送了76w+条短信...
因此此越权可获取全站商家账号+顾客手机号
案例二:
攻防案例之获取某系统链接
语法:”域名”+关键字(password||name||login等)
如:"xxxx.com" login
攻防案例之获取数据库权限
语法:“域名”+关键字(db_name|| db_pass|| mysql||jdbc.url||jdbc.password||redis等)
如:"xxxx.com" jdbc.password
然后该站点还开放了web服务
admin/admin
数据库弱口令+web应用弱口令+….
…
所以在常规信息收集上没有什么突破的话,倒是可以这样子尝试一下
多种方式多条路总是好的
总结
1、测试价值高常规扫描无果时,域名搭配密码、数据库等关键词检索,快速获取各类系统凭证,拓展攻击面。
2、风险连锁叠加泄露凭证可登录后台;接口无权限校验会越权窃取海量用户隐私;数据库配置泄露可完全接管业务系统。
3、泄露源于开发疏漏硬编码密钥、未过滤配置、私仓存放企业代码、混用生产配置,缺乏自查流程。
4、渗透实操要点按语言筛选代码,验证泄露账号有效性,深挖越权、批量导出等衍生漏洞。
5、企业防护手段规范代码开发与提交过滤;搭建 GitHub 泄露实时监控;严控代码存放规范,开展安全培训。