常見源碼泄露


常見源碼泄露

摘自:https://lddp.github.io/2018/05/10/WEB-%E6%BA%90%E7%A0%81%E6%B3%84%E6%BC%8F/

0x1 .git源碼泄露

當在一個空目錄執行 git init 時,Git 會創建一個 .git 目錄。 這個目錄包含所有的 Git 存儲和操作的對象。 如果想備份或復制一個版本庫,只需把這個目錄拷貝至另一處就可以了

比如某個網站存在.git文件泄露,可以:

http://www.baidu.com/.git

利用方式: github上的githack可以把整個.git備份的文件下載下來。它能解析 .git/index 文件,並找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夾下下載對應的文件,通過 zlib 解壓文件,按原始的目錄結構寫入源代碼

工具

0x2 .svn源碼泄露

SVN 是 Subversion 的簡稱,是一個開放源代碼的版本控制系統,相較於 RCS、CVS,它采用了分支管理系統,它的設計目標就是取代 CVS。互聯網上很多版本控制服務已從 CVS 遷移到 Subversion。

很多網站都使用了 svn 版本控制系統,和使用 git 版本控制器類似,很多開發者網站安全意識不足,代碼放到生產壞境中后,沒有清理 svn 的一些信息,導致 svn 殘留,因此攻擊者可以使用工具 dvcs-ripper 下載網站源碼。

當可以訪問到/.svn/entries的時候,就證明存在了。

比如烏雲曾經爆出的某個網站:

http://data.5i5j.com/sitemetrics/.svn/entries

工具 利用命令:

rip-svn.pl -v -u http://www.localhost.test/.svn/

當然還有更簡單的,seay-svn https://pan.baidu.com/s/1mrNpB">工具

0x3 DS_Store 文件泄露

.DS_Store 文件 MAC 系統是用來存儲這個文件夾的顯示屬性的:比如文件圖標的擺放位置。如果用戶刪除以后的副作用就是這些信息的失去。

這些文件本來是給 Finder 使用的,但它們被設想作為一種更通用的有關顯示設置的元數據存儲,諸如圖標位置和視圖設置。 當你需要把代碼上傳的時候,安全正確的操作應該把 .DS_Store 文件刪除才正確。通過.DS_Store可以知道這個目錄里所有的文件名稱。

當訪問/.ds_store可以訪問的到,就證明存在。例如:

http://www.baidu.com/.ds_store

工具 使用方式:

python ds_store_exp.py http://www.example.com/.DS_Store
0x4 .hg 源碼泄露

使用hg init 新建倉庫的時候,會生成一個備份文件.hg,當訪問/.hg存在的時候,就證明存在該漏洞。例如:

http://www.baidu.com/.hg/

工具 使用方式:

rip-hg.pl -v -u http://www.example.com/.hg/
0x5 常見編輯器備份文件泄露

http://[ip]/.test.php.swp http://[ip]/test.php.bak http://[ip]/test.jsp.old http://[ip]/cgi~ http://[ip]/index.php~ 如果存在這些問題,可以直接下載文件,查看文件內容。

0x6 WEB-INF/web.xml泄露

WEB-INF 是 Java 的 WEB 應用的安全目錄。該目錄原則上來說是客戶端無法訪問,只有服務端才可以可以訪問。如果想在頁面中直接訪問其中的文件,必須通過 web.xml 文件對要訪問的文件進行相應映射才能訪問。

WEB-INF 主要包含一下文件或目錄:

  1. /WEB-INF/web.xml:Web 應用程序配置文件,描述了 servlet 和其他的應用組件配置及命名規則;
  2. /WEB-INF/classes/:含了站點所有用的 class 文件,包括 servlet class 和非 servlet class,他們不能包含在 .jar 文件中;
  3. /WEB-INF/lib/:存放 web 應用需要的各種 JAR 文件,放置僅在這個應用中要求使用的 jar 文件 , 如數據庫驅動 jar 文件;
  4. /WEB-INF/src/:源碼目錄,按照包名結構放置各個 java 文件;
  5. /WEB-INF/database.properties:數據庫配置文件。

不過在一些特定的場合卻會讓攻擊者能讀取到其中的內容,從而造成源碼泄露.

訪問:

http://www.baidu.com/WEB-IBF/web.xml

目錄存在的位置是不固定的,要從實際情況出發,在進行滲透測試的時候,我曾經就碰到過。

0x7 網站備份文件泄露

在網站的升級和維護過程中,通常需要對網站中的文件進行修改。此時就需要對網站整站或者其中某一頁面進行備份。

當備份文件或者修改過程中的緩存文件因為各種原因而被留在網站 web 目錄下,而該目錄又沒有設置訪問權限時,便有可能導致備份文件或者編輯器的緩存文件被下載,導致敏感信息泄露,給服務器的安全埋下隱患。

該漏洞的成因主要有是管理員將備份文件放在到 web 服務器可以訪問的目錄下。

該漏洞往往會導致服務器整站源代碼或者部分頁面的源代碼被下載,利用。源代碼中所包含的各類敏感信息,如服務器數據庫連接信息,服務器配置信息等會因此而泄露,造成巨大的損失。

被泄露的源代碼還可能會被用於代碼審計,進一步利用而對整個系統的安全埋下隱患。

文件后綴:

.rar   .zip  .7z   .tar.gz   .bak    .swp   .txt   .sql

比如:

http://wm123.baidu.com/wm123.tar.gz

通過掃描網站的目錄,可以發現這些敏感的備份文件,由於瀏覽器不能直接解析這些文件后綴,導致可以直接下載,查看網站的源碼。

0x8 cvs文件泄露

這個,沒碰到過。 例如:

http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的結構

取回源碼的命令:

bk clone http://url/name dir

這個命令的意思就是把遠端一個名為name的repo clone到本地名為dir的目錄下。 工具

Bazaar/bzr

這個也沒見過,暫時做記錄。 工具 使用命令:

rip-bzr.pl -v -u http://www.example.com/.bzr/

這個工具比較叼,上面的.git,.svn都可以利用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM