天天看點

檔案洩露

github

Github是目前全球最熱門的線上協作網站,大量的程式員都會在Github上分享自己的代碼以及協力進行軟體開發。但與此同時,部分的程式員出于各種原因而沒有删除所分享代碼中的重要敏感資訊,而被利用與系統。

危害

郵箱 svn資訊 内部賬号

git

在運作git init初始化代碼庫的時候,會在目前目錄下面産生一個.git的隐藏目錄,用來記錄代碼的變更記錄等等。在釋出代碼的時候,把.git這個目錄沒有删除,直接釋出了。使用這個檔案,可以用來恢複源代碼。

利用方法

https://github.com/lijiejie/GitHack

處理方法

删除.git 檔案

拒絕對.git的通路

svn

Subversion,簡稱SVN,是一個開放源代碼的版本控制系統,相對于的RCS、CVS,采用了分支管理系統,它的設計目标就是取代CVS。網際網路上越來越多的控制服務從CVS轉移到Subversion。

svn同樣在項目根目錄下會建立一個名為.svn的隐藏檔案夾, 包含了所有分支commit資訊和代碼記錄.

利用工具

1.wget -r --no-parent --mirror http://www.example.com/.svn

cd www.example.com && svn revert --recursive .

2.https://github.com/kost/dvcs-ripper

3.Seay-Svn

修複

設定SVN密碼,并将匿名通路使用者的權限設定為none。

釋出代碼時使用svn export導出,而不要使用svn co檢索,防止洩露目錄結構。

Apache:

<Directory ~ ".svn">

Order allow,deny

Deny from all

</Directory>

Nginx:

location ~ ^(.*)\/.svn\/ {

return 404;

}

.ds_store

.DS_Store是Mac下Finder用來儲存如何展示 檔案/檔案夾 的資料檔案,每個檔案夾下對應一個。

如果開發/設計人員将.DS_Store上傳部署到線上環境,可能造成檔案目錄結構洩漏,特别是備份檔案、源代碼檔案。

https://github.com/lijiejie/ds_store_exp

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/

修複

删除。hg檔案

.bzr

Bazaar-NG 是個分散式版本控制系統,旨在易于開發人員和最終使用者的使用。分散式版本控制系統采用了 集市開發模型 ,可讓人們通過網際網路進行協作。如果使用 Bazaar-NG,您就可以向最喜歡的自由軟體項目送出自己的分支,同時無需特殊權限。