常見的Web源碼泄漏漏洞及其利用
- 2020 年 3 月 5 日
- 筆記
Web源碼泄露的漏洞:
- git源碼泄露
- svn源碼泄露
- hg源碼泄漏
- 網站備份壓縮文件
- WEB-INF/web.xml 泄露
- DS_Store 文件泄露
- SWP 文件泄露
- CVS泄露
- Bzr泄露
- GitHub源碼泄漏
1、git 源碼泄露
Git是一個開源的分佈式版本控制系統,在執行git init
初始化目錄的時候,會在當前目錄下自動創建一個.git
目錄,用來記錄代碼的變更記錄等。發佈代碼的時候,如果沒有把.git
這個目錄刪除,就直接發佈到了服務器上,攻擊者就可以通過它來恢復源代碼。
漏洞利用工具:GitHack
github項目地址:https://github.com/lijiejie/GitHack
用法示例:
GitHack.py http://www.openssl.org/.git/
修復建議:刪除.git目錄或者修改中間件配置進行對.git隱藏文件夾的訪問。
2、SVN 源碼泄露
SVN是一個開放源代碼的版本控制系統。在使用SVN管理本地代碼過程中,會自動生成一個名為.svn的隱藏文件夾,其中包含重要的源代碼信息。網站管理員在發佈代碼時,沒有使用『導出』功能,而是直接複製代碼文件夾到WEB服務器上,這就使.svn隱藏文件夾被暴露於外網環境,可以利用.svn/entries文件,獲取到服務器源碼。
漏洞利用工具:Seay SVN漏洞利用工具

修復建議:刪除web目錄中所有.svn隱藏文件夾,開發人員在使用SVN時,嚴格使用導出功能,禁止直接複製代碼。
3、hg源碼泄漏
Mercurial 是一種輕量級分佈式版本控制系統,使用 hg init
的時候會生成.hg。
漏洞利用工具:dvcs-ripper
github項目地址:https://github.com/kost/dvcs-ripper
用法示例:
rip-hg.pl -v -u http://www.example.com/.hg/
4、CVS泄露
CVS是一個C/S系統,多個開發人員通過一個中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。主要是針對 CVS/Root以及CVS/Entries目錄,直接就可以看到泄露的信息。
http://url/CVS/Root 返回根信息http://url/CVS/Entries 返回所有文件的結構
漏洞利用工具:dvcs-ripper
github項目地址:https://github.com/kost/dvcs-ripper.git
運行示例:
rip-cvs.pl -v -u http://www.example.com/CVS/
5、Bazaar/bzr泄露
bzr也是個版本控制工具, 雖然不是很熱門, 但它也是多平台支持, 並且有不錯的圖形界面。
運行示例:
rip-bzr.pl -v -u http://www.example.com/.bzr/
6、網站備份壓縮文件
管理員將網站源代碼備份在Web目錄下,攻擊者通過猜解文件路徑,下載備份文件,導致源代碼泄露。
常見的備份文件後綴:
- .rar
- .zip
- .7z
- .tar.gz
- .bak
- .txt
- .old
- .temp
漏洞利用工具:御劍

7、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等)
通過找到 web.xml 文件,推斷 class 文件的路徑,最後直接 class 文件,再通過反編譯 class 文件,得到網站源碼。
8、DS_Store 文件泄露
.DS_Store是Mac下Finder用來保存如何展示 文件/文件夾 的數據文件,每個文件夾下對應一個。如果將.DS_Store上傳部署到服務器,可能造成文件目錄結構泄漏,特別是備份文件、源代碼文件。
漏洞利用工具:
github項目地址:https://github.com/lijiejie/ds_store_exp
用法示例:
ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store
9、SWP 文件泄露
swp即swap文件,在編輯文件時產生的臨時文件,它是隱藏文件,如果程序正常退出,臨時文件自動刪除,如果意外退出就會保留,文件名為 .filename.swp。
漏洞利用:直接訪問.swp文件,下載回來後刪掉末尾的.swp,獲得源碼文件。
10、GitHub源碼泄漏
GitHub是一個面向開源及私有軟件項目的託管平台,很多人喜歡把自己的代碼上傳到平台託管。攻擊者通過關鍵詞進行搜索,可以找到關於目標站點的敏感信息,甚至可以下載網站源碼。
類似的代碼託管平台還有很多,人才是最大的漏洞。
https://github.com/[email protected]&type=code
文由微信公眾號bypass