前言
前些時間碰到的一道CTF題目是關於Git源碼泄露的,相對而言比較基礎的一道題目,無奈技藝不精,當時也並不知道Git源碼泄露的漏洞,也是看過Writeup之后才知曉!所以找個時間來總結學習下,避免下次仍是無從下手。
.git源碼泄露
成因
熟悉git
的應該知道在執行git init
初始化目錄的時候會創建一個.git
目錄,包含了所有的git
存儲何操作的對象,關於.git
文件夾更多細節,可以看看:https://blog.csdn.net/mayfla/article/details/78653396
所以在管理員發布代碼的時候,沒有把.git
目錄刪除,而是直接發布到了服務運行的目錄當中,那么攻擊者就能夠通過此文件來恢復源代碼了。
工具:Githack :http://www.freebuf.com/sectool/66096.html
改進版Githack:https://github.com/BugScanTeam/GitHack
CTF例題——mfw(攻防世界)
- 先掃目錄,工具:dirsearch:https://github.com/maurosoria/dirsearch
- 訪問
- 通過Githack獲取源碼
- 后面就是分析源碼得到flag了
- 此外還有
.hg
源碼泄漏,也都差不多,就不再去重復一遍了
svn文件泄露
成因
SYN(Subversion),一個開源集中型版本控制系統,而Git屬於分散型版本控制系統
在SVN管理的過程中,會自動生成一個.svn
的文件夾,包含了源代碼信息,而如果管理員直接復制代碼文件到Web服務器上,使得.svn
文件同樣暴露在外網環境下而沒有清理
利用工具:dvcs-ripper:https://github.com/kost/dvcs-ripper
OR Seay-SVN:https://pan.baidu.com/s/1mrNpB
例題:SVN信息泄露漏洞分析(第1題)——墨者學院在線靶場
- 先掃描看看
- 通過dvcs-ripper獲取源碼
- 此外還有
cvs
、Bazaar/bzr
等
.DS_Store文件泄露
成因
在發布代碼時沒有刪除文件夾中隱藏的.Ds_Store
文件,導致敏感信息泄露
CTF例題——Bugku
- 掃描
網站備份壓縮文件
成因
- 服務器管理員錯誤地將網站或者網頁的備份文件放置到服務器web目錄下。
- 編輯器在使用過程中自動保存的備份文件或者臨時文件因為各種原因沒有被刪除而保存在web目錄下。
'.rar','.zip','.tar','.tar.bz2','.sql','.7z','.bak','.txt','.swp'等
像.swp
文件,就是vim源文件泄漏,
可能導致備份文件或者編輯器的緩存文件被下載,導致敏感信息泄露,給服務器的安全埋下隱患。
可以通過掃描工具加以利用
CTF例題——備份是個好習慣(Bugku)
打開后一串字符:d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e
開始認為時16進制,但並不是,后面得知時MD5加密值
- 根據題目標題,先掃一波目錄
- PS:https://coding.net/u/yihangwang/p/SourceLeakHacker/git?public=true
- 發現
index.php.bak
- 接下來就分析源碼獲得
flag
了
WEB-INF/web.xml泄露
WEB-INF是Java的WEB應用的安全目錄。如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。
WEB-INF主要包含一下文件或目錄:
WEB-INF/web.xml : Web應用程序配置文件, 描述了servlet和其他的應用組件配置及命名規則.
WEB-INF/database.properties : 數據庫配置文件
WEB-INF/classes/ : 一般用來存放Java類文件(.class)
WEB-INF/lib/ : 用來存放打包好的庫(.jar)
WEB-INF/src/ : 用來放源代碼(.asp和.php等)
參考
https://blog.csdn.net/gitchat/article/details/79014538?utm_source=copy
https://www.cnblogs.com/dsli/p/7282917.html