git檔案致原始碼洩露

2022-09-16 21:42:21 字數 1641 閱讀 5021

前言:在一道ctf題的驅動下,我進行了對git和.git檔案致原始檔洩露的學習。

一道ctf題目。

由得到的結果猜測,可能考的點是.git檔案導致原始檔洩露。

git:分布式版本控制系統。

首先,何為版本控制系統?以git的誕生故事來解釋,linus在開發linux的時候,有世界廣大熱心的志願者的幫助,最開始都是志願者把原始碼down下來改了後在發給linus,linus再手工合成。當然linux原始碼大了後自然很不方便,又由於cvs、svn(集中式版本控制系統)慢且需聯網,又經歷了一些事件後,linus用c語言開發了git,此後,原始碼的每次改動都會有記錄,即每個版本都有記錄。其實可以模擬gitbub的功能。

何為分布式?分布式即與集中式對立,集中式是有乙個**伺服器來儲存原始碼,使用者每次修改原始碼都需要從**伺服器把原始碼down下來,修改後再提交到**伺服器。而分布式則是每個人電腦裡都有完整的版本庫。

對理解git工作原理的重要知識點:工作區和暫存區

工作區就是電腦裡看到的目錄。

暫存區在版本庫里,版本庫就是隱藏目錄.git。一張圖明了。stage是暫存區,master是分支,我覺得就是所有檔案儲存的地方。

我們把檔案往git版本庫新增的時候,分兩步:

1、git add :檔案新增到暫存區

2、git commit :暫存區的所有檔案新增到master

關於git的學習推薦廖雪峰老師的教程: 我的上面的內容基本都是從他的教程裡提煉出來的。

開發人員在開發時,常常會先把原始碼提交到遠端託管**(如github),最後再從遠端託管**把原始碼pull到伺服器的web目錄下,如果忘記把.git檔案刪除,就造成此漏洞。利用.git檔案恢復處**的原始碼,而原始碼裡可能會有資料庫的資訊。

利用工具有挺多的:githack githacker git_extract

想了想,其實自己的部落格就有.git檔案。

本來想用githacker 掃一下,沒東西出來,嗯。。哦,上傳到github的時候.git檔案沒有上傳上去,我的github部落格專案裡確實沒有.git。自然也就不會掃到.git。想想也是,哪這麼容易呢。

關於.git檔案導致原始碼洩露更多:

在用了網上的解法,恢復了**的原始檔,發現flag檔案不在。

沒想到flag檔案其實是在github倉庫的歷史commits中。

git原始碼洩露

0x00 原理 在 安全維護方面,git和svn資訊洩露是非常常見也是非常致命的乙個漏洞。當前大量開發人員使用git進行版本控制,對站點自動部署。如果配置不當,可能會將.git資料夾直接部署到線上環境。這就引起了git洩露漏洞。githack是乙個.git洩露利用指令碼,通過洩露的.git資料夾下的...

mfw 攻防世界 git原始碼洩露

可以通過這裡懷疑有.git洩露 訪問 git 目錄,發現有 用githack破解得到原始碼 注意 githack只能用python2 if isset get page else file templates page php i heard is dangerous assert strpos f...

GitHack Git原始碼洩露

執行命令即可 一樣先是掃瞄發現 git 洩露 使用 githack 工具 clone 目標源 到本地 git原始碼洩露不止涉及到當前git版本時需要檢視歷史記錄 git loggit resetgit diffgit log 會出現先前的幾個版本資訊,注意要切換到原始碼洩露資料夾裡 dist 每個版...