文章目錄
一、Git
1. 什麼是文件泄露
GitHub
.git # 攻擊者可以通過。 .git 內部文件,能看到很信息
.svn
.DS_Store
.hg
.bzr
cvs
WEB-INF
網站備份,zip 、sql、rar、swp、phpinfo
2. Github
Github是目前全球最熱門的在線協作網站,大量的程序員都會在Github上分享自己的代碼以及協力進行軟件開發。但與此同時,部分的程序員出於各種原因而沒有刪除所分享代碼中的重要敏感信息,而被黑客利用與攻擊系統。
3. 從代碼內部可以獲取到
1. 郵箱信息
2. SVN信息
3. 內部賬號以及密碼
4. 數據庫連接信息
5. 服務器配置信息
4. 真實典型案例:
UC某業務導致敏感內部郵件信息泄露:
https://wystatic.tuisec.win/static/bugs/wooyun-2015-091525.html
高德軟件多個信息泄露,影響公司安全:
https://wystatic.tuisec.win/static/bugs/wooyun-2015-094921.html
5. git 導致文件泄露
在運行 git init初始化代碼庫的時候,會在當前目錄下面產生一個.git的隱藏目錄,用來記錄代碼的變更記錄等等。
在發佈代碼的時候,把.git這個目錄沒有刪除,直接發佈了。使用這個文件,可以用來恢復源代碼。
訪問 http://localhost/.git
可以通過 .git 文件內的信息
取到你的源代碼 -> 數據庫密碼
-> 文件、sql
6. 陌陌某重要應用源碼泄露 (安全意識不到位)
https://wystatic.tuisec.win/static/bugs/wooyun-2014-086227.html
泄露的內容
1. 所有該項目的源代碼
2. 私有倉庫的地址
3. 私密的配置信息
4. 所有commiter的郵箱帳號信息
5. (可能)內部的帳號和密碼
7. 利用方法
https://github.com/lijiejie/GitHack
工具原理:
解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
去.git/objects/ 文件夾下下載對應的文件
zlib解壓文件,按原始的目錄結構寫入源代碼
8. 修復漏洞
1. 刪除.git文件
2. 通過apache/nginx來拒絕.git訪問
3. 提高安全意識!
二、SVN 信息泄露
Subversion ,簡稱SVN。是一個開放源碼的版本控制系統,
相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。
互聯網上越來越多的控制服務從CVS轉移到Subversion。
svn同樣在項目根目錄下會創建一個名爲.svn的隱藏文件夾, 包含了所有分支commit信息和代碼記錄.
1. 錯誤的導出方式
導出結果帶.svn文件夾的目錄樹
1. svn checkout http://路徑 [本地目錄全路徑] --username 用戶名
2. svn checkout svn://路徑 [本地目錄全路徑] --username 用戶名
2. 案例
淘寶網某應用svn信息導致代碼泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2012-012665.html
3. 手動敲代碼 復現
wget -r --no-parent --mirror http://www.example.com/.svn
cd www.example.com && svn revert --recursive .
4. 使用 Seay-Svn 工具復現
https://github.com/kost/dvcs-ripper
5. 修復
1. 設置SVN密碼,並將匿名訪問用戶的權限設置爲none。
2. 發佈代碼時使用svn export導出,而不要使用svn co檢索,防止泄露目錄結構。
3. 提高安全意識
6. 代碼
Apache 配置文件
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
Nginx 配置文件
location ~ ^(.*)\/\.svn\/ {
return 404;
}
7. DS_Store
.DS_Store是Mac下Finder用來保存如何展示 文件/文件夾 的數據文件,每個文件夾下對應一個。
如果開發/設計人員將.DS_Store上傳部署到線上環境,可能造成文件目錄結構泄漏,特別是備份文件、源代碼文件。
8. 案例
TCL某網站DS_Store文件泄露敏感信息
https://wystatic.tuisec.win/static/bugs/wooyun-2015-091869.html
利用工具
https://github.com/lijiejie/ds_store_exp
9. 修復:
sudo find / -name ".DS_Store" -depth -exec rm {} \;
三、小衆漏洞
.hg文件泄露
Mercurial 是一個 版本控制系統. 開發者可以用它來管理源代碼.
hg在初始化代碼庫的時候,會在當前目錄下面產生一個.hg的隱藏文件
利用工具
https://github.com/kost/dvcs-ripper
rip-hg.pl -v -u http://www.example.com/.hg/
1. 修復:
刪除.hg
2. bzr
Bazaar-NG 是個分散式版本控制系統,旨在易於開發人員和最終用戶的使用。分散式版本控制系統採用了 集市開發模型 ,可讓人們通過互聯網進行協作。如果使用 Bazaar-NG,您就可以向最喜歡的自由軟件項目提交自己的分支,同時無需特殊權限。
利用工具:
https://github.com/kost/dvcs-ripper
3. CVS
TortoiseCVS 是一款項目管理工具,一般用在IT行業,有服務器版和客戶端版,在客戶機上裝了CVS,能夠從服務器上遷出數據 。
是Windows平臺上最最簡單最最方便的CVS工具,TortoiseCVS的特點就是完全結合到資源管理器的鼠標右鍵菜單中進行操作,異常簡單和方便。
cvs的一個windows客戶端程序,功能當然是實現cvs的一些操作。CVS是指併發版本系統(Concurrent Versions System)。
利用工具:
https://github.com/kost/dvcs-ripper
rip-cvs.pl -v -u http://www.example.com/CVS/
4. 修復:
刪除該文件
四、WEB-INF/web.xml
WEB-INF是Java的WEB應用的安全目錄。
如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問
/WEB-INF/web.xml:Web應用程序配置文件,描述了 servlet 和其他的應用組件配置及命名規則。
/WEB-INF/classes/:含了站點所有用的 class 文件,包括 servlet class 和非servlet class。
/WEB-INF/lib/:存放web應用需要的各種JAR文件,放置僅在這個應用中要求使用的jar文件,如數據庫驅動jar文件
/WEB-INF/src/:源碼目錄,按照包名結構放置各個java文件。
/WEB-INF/database.properties:數據庫配置文件。
1. 案例
中國電信-wlan上網某節點web.xml可讀取導致ldap數據庫泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2013-039809.html
2. 修復:
禁止訪問WEB-INF目錄:location ~ ^/WEB-INF/* { deny all; }
五、網站備份
zip、sql、rar、swp
如果被人拿到了, 別人就可以獲取到源碼去分析你的代碼漏洞