SVN源码泄露漏洞
?SVN(subversion)是源代碼版本管理軟件,造成SVN源代碼漏洞的主要原因是管理員操作不規范?!霸谑褂肧VN管理本地代碼過程中,會自動生成一個名為.svn的隱藏文件夾,其中包含重要的源代碼信息。但一些網站管理員在發布代碼時,不愿意使用‘導出’功能,而是直接復制代碼文件夾到WEB服務器上,這就使.svn隱藏文件夾被暴露于外網環境,黑客可以借助其中包含的用于版本信息追蹤的‘entries’文件,逐步摸清站點結構。”(可以利用.svn/entries文件,獲取到服務器源碼、svn服務器賬號密碼等信息)
?? 更嚴重的問題在于,SVN產生的.svn目錄下還包含了以.svn-base結尾的源代碼文件副本(低版本SVN具體路徑為text-base目錄,高版本SVN為pristine目錄),如果服務器沒有對此類后綴做解析,黑客則可以直接獲得文件源代碼。
?
利用
1、漏洞利用工具:?Seay SVN漏洞利用工具
2、添加網站url
在被利用的網址后面加?/.svn/entries,列出網站目錄,甚至下載整站。
修復
1、在web服務器配置文件中增加一段代碼,過濾到.svn文件,返回404
nginx服務器:
location ~ ^(.*)\/\.svn\/
{
return 404;
}
重啟nginx
Apache服務器:
?
Order allow,deny
Deny from all
?
重啟Apache
2、查找服務器上所有.svn隱藏文件夾,刪除
以下命令刪除當前目錄下.svn文件夾
find . -type d -name ".svn"|xargs rm -rf
rm -rf `find . -type d -name .svn`
find . -name ".svn" -type d | xargs rm -fr
find . -name ".svn" -type d | xargs -n1 rm -R
使用腳本刪除
#!/bin/sh
cd /home/web/
find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1
find ./ -name ".svn" -print0 | xargs -0 rm -fr
if [ $? -ne 0 ]; then
echo "remove .svn dirs failed!"
fi
以上文件保存為.sh
執行之后,會刪除?/home/web目錄及其子目錄中?所有?.svn?隱藏文件夾
防御
開發人員在使用SVN時,嚴格使用導出功能。禁止直接復制代碼。
?轉載自:http://suo.im/GhKKQ
?工具: http://www.cnseay.com/3417/
轉載于:https://www.cnblogs.com/SzSec/p/6941889.html
總結
- 上一篇: Spark编程模型几大要素
- 下一篇: sqlserver常用函数点滴记录