查找github commit记录中泄露的电子邮箱(溯源小技巧)

commit邮箱泄露

无意间看到这篇文章

在任意一个commit记录后面加上.patch就能检查泄露的邮箱

比如 https://github.com/SkidderMC/FDPClient/commit/309743fabf6f2e7299ba6b3e0c8acb86fd89b131.patch

经过测试发现,使用github api也能获取,还可以实现自动化批量检查

API文档

前往 https://github.com/settings/tokens/new 创建一个无任何权限的token就可以(遵循最小特权原则)

以下为示例

1
2
3
4
GET https://api.github.com/repos/SkidderMC/FDPClient/commits?per_page=100&page=1
Accept: application/vnd.github+json
Authorization: Bearer 此处填写token
X-GitHub-Api-Version: 2022-11-28

这里提供一个匹配邮箱的正则,可用于编写自动化程序

好恐怖的正则(大嘘)

1
(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}|(\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]))

解决方法

将git提交邮箱更改为 github用户名@users.noreply.github.com

比如你的github用户名是example,那么邮箱就是 example@users.noreply.github.com


查找github commit记录中泄露的电子邮箱(溯源小技巧)
https://crackme.net/articles/github_email_trace/
作者
Brassinolide
发布于
2024年9月26日
许可协议