目录
有些开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了,埋藏着一些安全隐患,侧面有利于扩大了攻击者、渗透人员对目标的攻击面。
// 具体搜索技巧,请参考Github黑客搜索技巧.pdf

1、SRC漏洞挖掘案例一
1、静态凭据硬编码
很多开发团队习惯于把配置文件和代码放在同一个仓库里,图的是部署方便。但这个"方便",给攻击者提供了最直接的横向移动路径。
接下来跟我一起一步一步执行吧!
(1)首先,搜索关键字符

(2)Code检索结果返回了2000+条记录。逐条翻阅显然不现实,借助语言筛选功能,可以快速聚焦目标范围。

(3)将搜索范围限定在Java语言后,结果缩减到了75条。数量不大,逐个翻阅了一遍,果然从中发现了一个暴露在代码中的登录地址,以及配套的账号和密码。

(4)既然登录地址、账号、密码都有了,下一步自然是验证真伪。复制地址到浏览器,页面正常加载,是一个登录界面。输入账号密码,点击登录------进去了。

开工不到十分钟,地址可达,账号可用。一套组合拳下来,收获了一组有效的弱口令。
2、后台越权------换个ID,就是别人的全部
(1)首先还是登陆进去后,截图如下:
接下来抓取到如下请求,该接口用于统计短信发送数量:

(2)将 accountIt 参数逐一遍历,发现返回了不同用户的短信发送统计数据------越权,实锤。
越权确认之后,又往前翻了翻时间范围。把查询起始时间调整到2019年11月1日,截止2020年3月15日,系统返回的 total 字段显示------5000+ 条短信记录。一个账号就能调取这么多历史数据,涉及的用户面可想而知。

光看数字还不够,顺手点了一下页面上的"导出"功能,5000+条短信记录尽数导出。

(3)既然越权导出这条路走得通,那就换个目标试试。直接将 accountId 修改为 6851,时间区间拉到 2010-11-01 至 2020-11-15,点击导出------成功越权,他人记录尽数到手。

突然一不小心返回文件下载链接,动一动手指

(4)打开文件一看,内容比想象中更丰富------商家账号、店铺名称、顾客手机号,整整齐齐。而且导出的逻辑跟查询一样,商家ID完全可以遍历。也就是说,遍历多少个商家ID,就能导出多少个商家的短信记录和全部顾客手机号。这已经不是单个账号的越权问题,而是整个平台的顾客数据裸奔。

在翻看导出文件时,有个商家的数据格外扎眼------近十年间,累计发送了 76万+ 条短信。76万条,对应的是76万次与顾客的触达记录,背后是数十万条手机号信息尽数暴露。
一个商家能导出,所有商家就能遍历。此越权漏洞,可批量获取全站商家账号及对应店铺的顾客手机号。
2、SRC实战案例二
攻防对抗,信息为王。
很多时候,拿下目标靠的不是0day,而是藏在代码仓库里的几行配置。这次我们从最基础的搜索引擎语法入手:
• 搜入口:"xxxx.com" login,系统后台在哪,一目了然。
• 搜家底:"xxxx.com" jdbc.password,数据库钥匙,随手可得。
1、组合式域名锚点检索
以目标域名为锚点,叠加高频敏感关键词进行组合式检索。具体语法结构非常直接,例如使用 "target.com"、
login"target.com"、
password"target.com"admin 等组合,通过域名与功能词的交叉锁定,往往能在最短时间内精准定位到管理后台入口、员工登录页面或意外暴露在外的敏感接口,这些是信息收集中不可或缺的基础操作之一。

2、数据库连接信息检索
信息收集进入第二阶段------数据库连接信息。这个阶段的目标很明确:找到开发人员写在代码里的数据库配置。检索语法也很直接:"xxxx.com" jdbc.password、"xxxx.com" jdbc.url、"xxxx.com" db_pass,或者直接用"xxxx.com" mysql、"xxxx.com" redis等关键词。
(1)既然目标明确,首先配合前文提到的语言筛选功能,快速锁定代码中硬编码的数据库连接凭据。

(2)接下来测试一下连接是否成功
(3)然后试着用 admin/admin 登录,一次通过。

很容易数据库弱口令、Web应用弱口令、后台越权......一套组合拳下来,突破口往往就在这些"不起眼"的地方。
常规信息收集如果走不通,不妨换个思路,从这些容易被忽视的角落下手。多种方式,多条路,总是好的。