第二篇:代码泄露挖掘实战:从 Github 泄露到密钥利用
前言
在 SRC 漏洞挖掘和企业授权渗透项目中,代码仓库泄露是产出高危漏洞的重要来源,很多时候甚至是整个项目的突破口。很多开发人员在开发、测试阶段,缺乏安全意识,会将项目源码、配置文件、数据库账号密码、云服务 AK/SK、服务器 SSH 私钥、接口签名密钥直接上传到 Github、Gitee、Gitlab 等公开代码仓库。
这类漏洞有非常鲜明的特点:自动化扫描器无法发现,只能依靠人工检索;一旦命中,危害等级极高,经常可以直接接管云服务器、云存储、读取核心业务数据。
很多人以为代码泄露就是完整源码打包上传,其实并非如此,哪怕只是配置文件中一行明文密钥,就足以造成重大安全事件。
本文会完整讲解检索思路、关键词构造技巧、常见泄露类型、密钥有效性验证方法、实战限制、踩坑案例以及对应的修复方案,覆盖从检索、验证到写漏洞报告全流程。
⚠️法律声明: 本文仅用于企业授权安全测试、网络安全技术学习。仅可查看公开仓库,禁止访问私有仓库、clone 后进行越权操作,严格遵守相关法律法规。
一、什么是代码仓库泄露
开发人员在提交代码到 Git 仓库时,误把包含敏感信息的配置文件、脚本、密钥文件提交到公开仓库,互联网上任何人都可以直接访问查看。
常见场景:开发本地调试代码,图省事直接提交配置;项目测试完毕,没有清理密钥就直接上传;开源 Demo 项目复用线上真实配置。
代码泄露分为两类:
- 完整源码泄露:整套业务代码上传,可以审计代码寻找漏洞
- 敏感片段泄露:只泄露配置文件、密钥,不需要完整源码,直接接管资源
实战经验:单纯源码泄露不一定能直接利用,密钥明文泄露是价值最高的一类代码泄露漏洞。
二、检索平台与高级检索语法
国内优先检索 Gitee,国外目标优先 Github。平台自带搜索语法,核心思路是目标关键词 + 敏感关键词组合检索,单一关键词很难找到有效仓库。
基础检索语法示例:
域名 AND password 公司全称 AND mysql 域名 AND access_key 域名 AND secret 域名 AND ssh private 公司名 AND 数据库密码 域名 AND oss关键词拆分
目标关键词(根据前期信息收集获取):企业全称、官网域名、子域名、项目英文名、产品名称、品牌简称。
敏感关键词:password、passwd、mysql、database、secret、ak、sk、accesskey、ssh、private、token、apiKey、数据库密码、密钥、oss。
检索进阶技巧
- 中英文双关键词检索:很多国内开发注释使用中文,搜索中文关键词更容易命中。
- 拆分域名,不带 www 检索,很多仓库写的是裸域名。
- 限定文件后缀检索:
filename:config.yml、filename:config.php,只检索配置文件。 - 筛选提交时间:优先看近 1~2 年内提交的仓库,时间越近,密钥存活概率越高。多年前的旧仓库,密钥大概率已经失效。
- 查看提交历史:很多开发发现密钥泄露后,只是删除文件重新提交,旧提交记录中依然保留密钥,查看 commit 历史是容易被忽略的技巧。
踩坑提醒:不要使用爬虫大规模批量爬取代码平台,极易触发平台风控,账号直接封禁。手动检索、少量查询即可。
三、高频泄露文件类型与对应的敏感内容
1. 数据库配置文件(最常见)
常见文件名:config.php、application.yml、db.properties、.env、database.php
泄露内容:数据库地址、端口、账号、明文密码。
成功利用:使用 Navicat 等工具尝试连接数据库,读取业务数据。
限制:数据库存在外网白名单的情况下,外部 IP 无法连接。
2. 云服务商 AK/SK(阿里云、腾讯云、华为云 OSS)
AccessKey ID + AccessKey Secret,云平台身份凭证。
拿到 AK/SK 之后,可以调用云 API:读取 OSS 存储桶内文件、列出云服务器、快照、域名解析等。如果权限很高,甚至可以创建服务器、修改安全组。
高危点:很多企业 OSS 存储桶存放用户头像、合同、身份证等敏感文件。
3. SSH 私钥 id_rsa
私钥文件泄露,如果服务器没有 IP 白名单,直接可以 ssh 登录服务器,拿到服务器最高权限。
配套关键词:id_rsa、private key
4. 接口密钥、JWT 密钥、API Token
JWT 密钥泄露,可以伪造任意用户的 Token,直接登录后台,实现垂直越权;接口签名密钥泄露,可以绕过接口签名校验,任意调用后端接口。
5. 运维脚本、自动化部署文件
Shell 脚本、ansible 配置文件,脚本内硬编码服务器 IP、账号密码、内网网段、VPN 信息。这类泄露往往可以拿到内网资产线索,作为横向渗透突破口。
四、完整实战检索流程
- 前置信息收集:整理目标企业名称、主域名、子域名、项目名称、产品代号。
- 批量构造多组关键词,在 Github/Gitee 检索公开仓库,多轮更换关键词反复检索。
- 筛选仓库:优先看最近提交的仓库,Fork 仓库一般是副本,优先看原始仓库。打开仓库,定位配置文件、密钥片段。
- 查看历史 commit:很多开发删除密钥后,旧提交记录依旧保留敏感信息,不要只看最新版本代码。
- 密钥有效性验证(必须拥有书面授权!!)
- 数据库账号:尝试使用数据库客户端连接,确认是否能登录。
- OSS AK/SK:使用对应云 SDK 调用接口,查看存储桶列表,确认凭证是否生效。
- SSH 私钥:尝试 ssh 登录服务器。
- 验证成功之后,完整保存证据截图、仓库链接、密钥利用证明,整理漏洞报告。
- 漏洞提交之后,不要在仓库提交 issue、评论提醒开发,会直接打草惊蛇。
五、实战踩坑点:搜到密钥≠可用漏洞
❌ 新手巨大误区:只要搜到明文密钥,直接判定高危漏洞提交 SRC,结果被驳回。
很多场景下密钥只是字符串,已经失效,无法利用:
- 开发发现泄露,已经登录云平台重置密码、作废 AK/SK、修改数据库密码。
- 密钥属于本地测试环境,和线上生产环境完全隔离,无法访问线上资源。
- 服务器、数据库配置 IP 白名单,外部公网 IP 无法使用该密钥登录。
- 密钥权限极低,只有只读权限,无法获取敏感数据。
✅ 漏洞判定标准:必须完成有效性验证,密钥可成功调用资源、登录服务,才算有效高危漏洞。仅存在泄露字符串,但无法利用,只能判定为低危信息泄露。
额外踩坑:
- 只看仓库最新代码,忽略历史提交记录,漏掉已经删除但依然存在于 commit 中的密钥。
- 误把 Fork 副本仓库当成原始仓库,提交漏洞,证据无效。
- 拿到密钥后超出授权范围,随意删除、修改云资源、下载大量业务数据,触发法律风险。
六、合规安全红线(重中之重,必须牢记)
- 只查看公开仓库,禁止访问私有仓库。不要爆破仓库账号、尝试利用漏洞进入私有仓库,这类行为属于违法入侵。
- 拿到密钥后,仅在授权范围内验证有效性。禁止删改数据、删除文件、篡改服务器配置、批量下载业务敏感数据。验证完成立刻停止操作,不要深入操作。
- 不要在仓库下留言、提交 issue、联系开发,会立刻提醒对方重置密钥,同时暴露你的测试行为。
- 检索只做公开被动信息收集,不要使用爬虫大规模爬取代码平台,容易触发平台风控封号。
- 严禁将仓库中的个人隐私、客户敏感数据下载、保存、外传。
七、企业防护方案(漏洞报告内的修复建议)
- 开发规范:禁止将密钥、密码硬编码写入代码,统一使用环境变量、专业密钥管理服务。
- 代码提交卡点:在 CI/CD 流水线加入敏感信息扫描工具,代码提交前自动检测密钥、密码,拦截包含敏感信息的提交。
- 定期监控:定期在 Github、Gitee 使用企业关键词检索,建立泄露监控机制,一旦发现密钥泄露,第一时间作废凭证。
- 最小权限原则:云账号 AK/SK 遵循最小权限,业务账号仅分配业务必需权限,即使泄露,降低危害范围。
- 密钥泄露应急流程:一旦发现密钥泄露,立刻作废全部凭证、修改数据库密码,排查是否存在数据被访问痕迹。
八、漏洞报告编写要点
提交 SRC 或者项目报告,不能只贴仓库链接,报告需要包含:
- 漏洞描述:开发误将密钥上传至公开 Git 仓库,造成凭证泄露。
- 仓库链接,截图(敏感密钥部分可做脱敏,保留证明线索)。
- 密钥有效性验证过程、验证截图。
- 风险危害:攻击者获取密钥可操作云资源 / 登录数据库 / 接管服务器,造成数据泄露。
- 详细修复方案:作废密钥、代码扫描、开发规范整改。
总结
代码仓库泄露属于被动信息收集手段,全程几乎不会产生流量告警,是 SRC 挖洞、授权渗透里产出高危漏洞的优质方向。核心在于多维度关键词构造 + commit 历史检索 + 密钥有效性验证。
不要看到密钥就直接提交漏洞,一定要验证是否真实可用;同时严守边界,只查询公开仓库,不越权操作。很多渗透项目卡壳很久找不到突破口,最后突破口就藏在一行被开发意外上传到代码仓库的密钥中。
⚠️免责声明:本文技术内容仅用于授权安全测试学习,所有密钥验证操作必须拥有书面授权,违规操作责任自负。
最后
关于网络安全技术储备
学好网络安全不论是就业还是做副业赚钱都不错,但要学会网络安全还是要有一个学习规划。最后大家分享一份全套的网络安全学习资料,给那些想学习网络安全的小伙伴们一点帮助!
对于0基础小白入门:
如果你是零基础小白,想快速入门网络安全是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:网安成长学习路线图、SRC&黑客文档、护网行动、黑客必读书单、面试题、学习视频等教程。带你从零基础系统性的学好网络安全!
需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)
👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
👉5.黑客必读书单👈
随着互联网技术的飞速发展,网络安全已经成为了当今科技领域的一大热点。这些SQL注入、CCNA、Web渗透、Linux服务器等,以其强大的语言理解和防御能力,正在守护着我们网络世界。 那以下这些PDF籍就是非常不错的学习资源。
👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】