柚子快報邀請碼778899分享:git泄露漏洞總結(jié)
柚子快報邀請碼778899分享:git泄露漏洞總結(jié)
一.git泄露漏洞原理
Git泄露是指在使用Git版本控制系統(tǒng)時,由于配置不當(dāng)或者操作失誤,導(dǎo)致敏感信息(如密碼、密鑰、源代碼等)被意外地上傳到公開的代碼倉庫或者其他公開可訪問的地方,從而被未授權(quán)的人獲取到。
二.造成原因
Git泄露的原理主要有以下幾個方面:
配置錯誤:在使用Git時,如果配置不當(dāng),比如將敏感信息直接寫入配置文件或者未正確設(shè)置訪問權(quán)限,就會導(dǎo)致這些敏感信息被提交到代碼倉庫中。 操作失誤:在進(jìn)行Git操作時,比如誤將敏感文件添加到暫存區(qū)或者提交到代碼倉庫中,或者誤將敏感信息包含在提交的日志中,都可能導(dǎo)致敏感信息泄露。 公開倉庫:如果將代碼倉庫設(shè)置為公開可訪問的狀態(tài),任何人都可以查看和下載其中的內(nèi)容,包括敏感信息。 其他公開可訪問的地方:除了代碼倉庫,還有一些其他公開可訪問的地方,比如代碼托管平臺的問題追蹤系統(tǒng)、Wiki頁面、郵件列表等,如果在這些地方發(fā)布了敏感信息,也可能導(dǎo)致泄露。
?三.git庫的結(jié)構(gòu)
四.?git泄露ctf題型
題目來源ctfhub--git泄露
一.log
如題目所述:我們需要使用工具githack來完成。
首先要使用dirsearch 掃描網(wǎng)站目錄和文件,看是否存在git泄露漏洞。
補(bǔ)充一下知識點(diǎn):
選項含義 -u?? ?指定url -e 語言?? ?指定網(wǎng)站語言,一般用-e*即所有語言 -i?? ?保留響應(yīng)狀態(tài)碼(不同狀態(tài)碼用逗號分隔,可指定范圍,如-i 200,300-400) -x?? ?排除響應(yīng)狀態(tài)碼(不同狀態(tài)碼用逗號分隔,可指定范圍,如-x 400,400-500) -w?? ?指定字典 -r?? ?遞歸目錄(即可掃描新掃描出的目錄下的目錄) -random-agents?? ?使用隨機(jī)User-Agent ?
基礎(chǔ)命令:dirsearch -u “靶場鏈接”
?掃描后發(fā)現(xiàn)存在git目錄。
打開githack(python2),在這里要聲明兩個工具都要在python環(huán)境下運(yùn)行。
在文件系統(tǒng)中找到存放githack的文件夾,在該文件夾下運(yùn)行終端。
執(zhí)行命令:python2 Githack.py -u? 靶場網(wǎng)址.git
?目的通過git泄露的文件夾還原并保存還原重建工程源代碼。
?,打開文件存儲的路徑,運(yùn)行終端并使用git log查看歷史記錄。發(fā)現(xiàn)下列信息:
?remove flag 表示當(dāng)前版本
????????add flag 表示這次提交的版本
? ? ? ? init 表示初始的版本
?使用git diff命令可以對比提交版本,對比這三個版本發(fā)現(xiàn)在add flag中獲得此題flag?
二.stash
與上一題差不多,首先先掃描網(wǎng)站是否存在git泄露。?
用githack 查看網(wǎng)頁的目錄文件.
?進(jìn)入保存該文件夾的路經(jīng)下打開終端,用命令git log查看歷史記錄。發(fā)現(xiàn)
?remove flag 表示當(dāng)前版本
????????add flag 表示這次提交的版本
? ? ? ? init 表示初始的版本
?輸入git diff 比對版本,發(fā)現(xiàn)第一個下面存在一個txt文本文檔,打開卻沒有flag。題目中提示用stash,因為不清出這個的用法,找來學(xué)了一下
git stash 的作用 git stash用于想要保存當(dāng)前的修改,但是想回到之前最后一次提交的干凈的工作倉庫時進(jìn)行的操作.git stash將本地的修改保存起來,并且將當(dāng)前代碼切換到HEAD提交上.
通過git stash存儲的修改列表,可以通過git stash list查看.git stash show用于校驗,git stash apply用于重新存儲.直接執(zhí)行g(shù)it stash等同于git stash save.
最新的存儲保存在refs/stash中.老的存儲可以通過相關(guān)的參數(shù)獲得,例如stash@{0}獲取最新的存儲,stash@{1}獲取次新.stash@{2.hour.ago}獲取兩小時之前的.存儲可以直接通過索引的位置來獲得stash@{n}.
git stash的概念理解 git stash的每個存儲單元在工作倉庫中是通過commit的形式由樹結(jié)構(gòu)展示的.它的根節(jié)點(diǎn)是HEAD所在的提交。
執(zhí)行 git stash pop 恢復(fù)文件,在查看發(fā)現(xiàn)還有一個txt文件,cat這個文件,發(fā)現(xiàn)flag。
?下列是git常用的一些命令:
?三.index
本題與上兩題差不多,用githack掃描的時候發(fā)現(xiàn)文件夾中多了一個txt文件,嘗試打開發(fā)現(xiàn)flag就在其中。?
?由于直接就出flag了,就覺得挺奇怪的。后來去找了資料
題目中的index并不是我們理解的web網(wǎng)頁,而是一個暫存區(qū),默認(rèn)存儲在.git/index。
關(guān)于index的具體知識點(diǎn)大家可以閱讀一下這個大佬的文章:(Git本地庫中的索引(Index)及文件狀態(tài)概述_易生一世的博客-CSDN博客
有的時候會出現(xiàn)cat 亂碼的情況,用git checkou命令解決問題。
但實(shí)際上的git漏洞并不是這么簡單,直接給我們方法和提示信息這是不可能的。目前對git泄露只能說是了解一點(diǎn)皮毛,入門都說不上。自己去挖掘git漏洞更加困難。
柚子快報邀請碼778899分享:git泄露漏洞總結(jié)
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。