利用 GitTools 探索 Git 漏洞

什麼是 Git 漏洞?
網站如果沒有妥善設定 .git
資料夾的存取限制,惡意人士就可以利用工具下載或還原 Git 儲存庫,進而存取網站的程式碼。這可能導致網站的敏感資訊、架構設計或密碼洩漏。建議立即檢查 Web 伺服器的設定,並確保阻止對 .git
資料夾的訪問。
什麼是版本控制系統?
數十年前,程式開發者面臨著多人協作開發的困難。為了改善這種情況,誕生了「版本控制系統(Version Control System, VCS)」,其主要任務是讓多人能同時在同一個程式碼庫上工作,並且通過記錄每次程式碼變更(即「提交」)來達成目的。Git 是其中最為著名的 VCS,由 Linux 之父 Linus Torvalds 所創建並維護。許多人還熟悉 GitHub,它是一個用於託管 Git 儲存庫的在線平台。
GitTools 工具介紹
GitTools 是一組專門用來發現並利用網站 Git 漏洞的工具集。它包含以下三個小工具:
- Finder:這是一個 Python 腳本,用來檢測網站是否公開了
.git
資料夾,藉由檢查.git/HEAD
文件來確定該網站是否有 Git 儲存庫。 - Dumper:此工具可以從沒有啟用目錄列表的 Web 伺服器中,下載儲存庫的
.git
資料夾中的檔案。 - Extractor:此工具用於從損壞或不完整的 Git 儲存庫中提取出提交紀錄及其內容,幫助還原關鍵程式碼。
使用方法
- Finder:
檢測網站是否公開.git
資料夾:$ ./gitfinder.py -h
範例:bash複製程式碼./gitfinder.py -i inputfile.txt -o outputfile.txt -t 10
- Dumper:
下載儲存庫的.git
資料夾:$ ./gitdumper.sh http://target.com/.git/ /path/to/save
- Extractor:
從已下載的.git
資料夾中提取提交紀錄:./extractor.sh /path/to/repo /path/to/dump
實戰經驗
在 AIS3 2020 中,有一道名為「Elephants」的題目,就涉及到下載網站的 .git
資料夾並進行分析,這是 GitTools 的經典應用場景。
保護你的網站
為避免 Git 資料夾洩漏,務必在 Web 伺服器的設定中,阻止對 .git
資料夾的訪問,例如通過修改 .htaccess
或 Nginx 配置來封鎖對 .git
目錄的存取,這樣可以大幅降低網站的安全風險。
版權聲明:
本文部分內容改編自 CSDN 博主「ATFWUS」的原創文章,遵循 CC 4.0 BY-SA 版權協議。