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