背景介紹:
對于漏洞賞金獵人,GitHub 存儲庫可以發現各種有用的信息,并不是只有開源目標才會出現問題,有時,企業/組織成員及其開源計劃會錯誤地披露可用于對付目標公司的信息。本文將為你提供各種掃描 GitHub 存儲庫中敏感信息的方法和工具,以助你最大化發現漏洞。
最大化Cloning:
你完全可以只在 github.com 網站上進行研究,但是為了更好的進行本地測試,建議克隆每個目標庫。@mazen160 的 GitHubCloner 就是一個很棒的工具。它用起來非常簡單:
$ python githubcloner.py --org organization -o /tmp/output
靜態分析:
在開始靜態分析之前,真正理解目標項目至關重要。白帽 @Jobert 會建議在尋找漏洞之前應對目標有很好的了解。
人工分析:
“learn to make it, then break it”這句話適用于人工分析。如果你能學習一門編程語言,你就能夠理解要采取和避免的安全預防措施。
一旦熟悉了目標及其架構,就可以開始尋找感興趣、熟悉或知道開發人員經常出錯的關鍵字。
以下是在第一次‘泛泛’尋找期間使用的一些搜索詞的基本列表:
API and key. (Get some more endpoints and find API keys.)tokensecretTODOpasswordvulnerable ??http:// & https://
另外還會關注:
CSRFrandomhashMD5, SHA-1, SHA-2, etc.HMAC
當你習慣了某些漏洞類型時,就會確切地知道在特定語言中尋找什么,例如,當在 Java 中尋找時序泄漏時,我知道 Arrays.equals() 和 HMAC 會共同導致該漏洞。
另一個關鍵步驟是查看提交歷史記錄,你會從這些歷史提交中收集到的信息量感到驚訝。我曾見過貢獻者錯誤地認為他們已經刪除了憑據,而他們仍在提交歷史記錄中。由于 git 的歷史,我發現了仍在運行的古老端點。

工具:
在執行 Python 項目時使用的主要工具是 Bandit
Bandit 會識別常見問題,但也會返回誤報結果。所以請謹慎使用。
$ bandit -r path/to/your/code -ll
如果你想在項目中查找過時的 Python 模塊,請將 requirements.txt 的內容粘貼到 https://pyup.io/tools/requirements-checker/ 中,這將顯示指定版本的模塊中是否存在任何安全問題。
Snyk.io 是一個用于檢查依賴項的出色工具,該平臺支持多種語言。

對于信息偵察,許多研究人員建議使用 Gitrob,此工具將在公共 GitHub 存儲庫中查找敏感信息。
$ gitrob analyze acme,johndoe,janedoe
要查找API 密鑰、令牌、密碼等字符串,可以使用 truffleHog。
$ truffleHog https://github.com/dxa4481/truffleHog.git
如果你正在尋找一個一體化的查找器,@anshuman_bh 的 git-all-secrets 是款適合的工具。該工具將多個開源敏感信息查找器組合成一個大工具。對于 Ruby on Rails 應用程序,推薦 Brakeman。Brakeman 是一個靜態分析安全掃描器,可以在代碼中發現大量的各種安全問題。 另外使用 Gerben Javado 的 LinkFinder 在存儲庫的 JS 文件中查找?端點?。
$ python linkfinder.py -i 'path/to/your/code/*.js' -r ^/api/ -o cli
報告你的發現:
當涉及到漏洞賞金時,請仔細閱讀目標賞金計劃的政策,很少有程序通過 GitHub 接受報告,請聯系安全團隊,或者使用漏洞賞金平臺,例如 HackerOne 或 BugCrowd
順帶說一句,白盒審計的一個很酷的事情,由于你可以訪問代碼,因此能夠更容易地提出修復建議或提交補丁。加油吧,騷年~ ??
系統安全運維
一顆小胡椒
系統安全運維
商密君
安全圈
LemonSec
系統安全運維
LemonSec
LemonSec
Rot5pider安全團隊
ChaMd5安全團隊