1. 程式人生 > 實用技巧 >常見的Web原始碼洩漏漏洞及其利用(轉載記錄)

常見的Web原始碼洩漏漏洞及其利用(轉載記錄)

Web原始碼洩露的漏洞:

  • git原始碼洩露
    
  • svn原始碼洩露
    
  • hg原始碼洩漏
    
  • CVS洩露
    
  • Bazaar/bzr洩露
    
  • 網站備份壓縮檔案
    
  • WEB-INF/web.xml 洩露
    
  • DS_Store 檔案洩露
    
  • SWP 檔案洩露
    
  • GitHub原始碼洩漏
    

1、git 原始碼洩露

Git是一個開源的分散式版本控制系統,在執行git init初始化目錄的時候,會在當前目錄下自動建立一個.git目錄,用來記錄程式碼的變更記錄等。釋出程式碼的時候,如果沒有把.git這個目錄刪除,就直接釋出到了伺服器上,攻擊者就可以通過它來恢復原始碼。

漏洞利用工具:GitHack
github專案地址:

https://github.com/lijiejie/GitHack

修復建議:刪除.git目錄或者修改中介軟體配置進行對.git隱藏資料夾的訪問。

2、SVN 原始碼洩露

SVN是一個開放原始碼的版本控制系統。在使用SVN管理原生代碼過程中,會自動生成一個名為.svn的隱藏資料夾,其中包含重要的原始碼資訊。網站管理員在釋出程式碼時,沒有使用‘匯出’功能,而是直接複製程式碼資料夾到WEB伺服器上,這就使.svn隱藏資料夾被暴露於外網環境,可以利用.svn/entries檔案,獲取到伺服器原始碼。

漏洞利用工具:Seay SVN漏洞利用工具
GitHack.py http://www.openssl.org/.git/

修復建議:刪除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

漏洞利用工具:dirsearch

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

參考連結:
https://ctf-wiki.github.io/ctf-wiki/web/php/php-zh/#_19
https://evilpan.com/2017/09/22/web-file-disclosure/
https://www.cnblogs.com/xiaozi/p/12397114.html