GitHack:一個git泄露利用腳本
當前大量開發人員使用git進行版本控制,對站點自動部署。如果配置不當,可能會將.git文件夾直接部署到線上環境。這就引起了git泄露漏洞。
- 作者:exploit.py來源:FreeBuf|2015-04-30 08:03
免責聲明:本站提供安全工具、程序(方法)可能帶有攻擊性,僅供安全研究與教學之用,風險自負!
當前大量開發人員使用git進行版本控制,對站點自動部署。如果配置不當,可能會將.git文件夾直接部署到線上環境。這就引起了git泄露漏洞。
GitHack是一個.git泄露利用測試腳本,通過泄露的文件,還原重建工程源代碼。
Git信息泄露的危害很大,滲透測試人員、攻擊者,可直接從源碼獲取敏感配置信息(如:郵箱,數據庫),也可以進一步審計代碼,挖掘文件上傳、SQL注射等安全漏洞。
工作原理
1、解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
2、去.git/objects/ 文件夾下下載對應的文件
3、zlib解壓文件,按原始的目錄結構寫入源代碼
優點
速度快,默認20個工作線程
儘量還原所有的源代碼,缺失的文件不影響腳本工作
腳本不需要執行額外的git命令,all you need is python
腳本無需瀏覽目錄
可能的改進
存在文件被gc打包到git\objects\pack的情況,稍後可測試下看能否直接獲取並解壓這個文件,還原源代碼
用法示例
GitHack.py http://www.openssl.org/.git/
執行中截圖:
執行結果:
獲取代碼:https://github.com/lijiejie/GitHack
參考資料
非常感謝 sbp 的 gin – a Git index file parser,腳本中使用了他的解析代碼,爲適用python 2.x和Windows作了細微的改動