利用 GitTools 探索 Git 漏洞

什麼是 Git 漏洞?

網站如果沒有妥善設定 .git 資料夾的存取限制,惡意人士就可以利用工具下載或還原 Git 儲存庫,進而存取網站的程式碼。這可能導致網站的敏感資訊、架構設計或密碼洩漏。建議立即檢查 Web 伺服器的設定,並確保阻止對 .git 資料夾的訪問。

什麼是版本控制系統?

數十年前,程式開發者面臨著多人協作開發的困難。為了改善這種情況,誕生了「版本控制系統(Version Control System, VCS)」,其主要任務是讓多人能同時在同一個程式碼庫上工作,並且通過記錄每次程式碼變更(即「提交」)來達成目的。Git 是其中最為著名的 VCS,由 Linux 之父 Linus Torvalds 所創建並維護。許多人還熟悉 GitHub,它是一個用於託管 Git 儲存庫的在線平台。

GitTools 工具介紹

GitTools 是一組專門用來發現並利用網站 Git 漏洞的工具集。它包含以下三個小工具:

  1. Finder:這是一個 Python 腳本,用來檢測網站是否公開了 .git 資料夾,藉由檢查 .git/HEAD 文件來確定該網站是否有 Git 儲存庫。
  2. Dumper:此工具可以從沒有啟用目錄列表的 Web 伺服器中,下載儲存庫的 .git 資料夾中的檔案。
  3. Extractor:此工具用於從損壞或不完整的 Git 儲存庫中提取出提交紀錄及其內容,幫助還原關鍵程式碼。

使用方法

  1. Finder
    檢測網站是否公開 .git 資料夾:$ ./gitfinder.py -h 範例:bash複製程式碼./gitfinder.py -i inputfile.txt -o outputfile.txt -t 10
  2. Dumper
    下載儲存庫的 .git 資料夾:$ ./gitdumper.sh http://target.com/.git/ /path/to/save
  3. 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 版權協議。

You may also like