手动获取个人邮箱
方法一:通过commits
找到作者提交的,点击箭头位置
在出现的url后面加上.patch
https://github.com/xxxx/xxxexample/commit/4a0b0613da9ca66c61bc9e8eeebe7325c4908afeb
修改后的
https://github.com/xxxx/xxxexample/commit/4a0b0613da9ca66c61bc9e8eeebe7325c4908afeb.patch
方法二:github API接口
https://api.github.com/users/<name>/events/public
替换name为需要查询的黑客id
https://api.github.com/users/黑客id/events/public
可查询到作者邮箱
方法三:graphql 查询
地址https://docs.github.com/en/graphql/overview/explorer
{ repository(name: "填入要查询的GitHub存储库的名称", owner: "填入要查询的GitHub存储库的所有者的用户名") { ref(qualifiedName: "master") { target { ... on Commit { id history(first: 5) { edges { node { author { name email } } } } } } } }}
- 自动化工具获取作者信息
Gitmails,是一款收集github存储库中包含的作者提交的名字和电子邮箱的工具。常用于攻防演练中的信息收集,溯源工作。
https://github.com/giovanifss/Gitmails
安装python依赖
python3 -m pip install -r requirements.txt
python3 -m pip install pygit2
使用方式
python3 gitmails.py -u 用户名
会遍历一些接口查询用户邮箱(需要kx上网)
- 为什么查询不到作者信息
GitHub 提供了两种方法来保护我们的邮箱隐私:
1、在推送时发现隐私邮箱则阻止推送;
2、使用 GitHub 专用的替代邮箱。
勾选以下两个功能后点击保存:
Keep my email addresses private功能(隐私地址转换:如果发现以上列表中的邮箱地址,则会转换为 GitHub 专用的邮箱地址)
Block command line pushes that expose my email功能(阻止推送:如果发现暴露了邮箱地址,则阻止推送。)
开启后会给我们提供一个虚拟的邮箱号,效果如下