说明:

SVN(subversion)是源代码版本管理软件,

在SVN的使用中,

会自动生成一个名为.svn的隐藏文件夹,

其中包含重要的源代码信息。

如果在发布代码时,直接复制代码文件夹到Web服务器,

同时.svn隐藏 文件夹也被上传到程序根目录,

可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息。

一、此隐藏文件夹是怎么来的?

从svn获取发布版本时,没有正确使用svn导出功能导致!

具体细节, 乌云 上面有篇文章,可以参考。

\

二、黑客是如何利用svn隐藏文件漏洞的?

1、漏洞利用工具: Seay SVN漏洞利用工具 (请自己下载

\

2、添加网站url

在被利用的网址后面加 /.svn/entries

\

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接

就能列出来网站目录,甚至下载整站。

\

 

三、修复漏洞

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://www.2cto.com/Article/201506/410665.html

Linux使用lsyncd实现2个文件夹实时同步

官方文档: https://axkibe.github.io/lsyncd/download/ 1.安装 $ yum install lsyncd $ yum install rsync $ yum install libtermcap-devel ncurses-devel l...

阅读全文

firewall 防火墙常用命令

查看版本 $ firewall-cmd --version 0.4.3.3 help $ firewall-cmd --help 状态 $ firewall-cmd --state running 重载配置 $ firewall-cmd --reload 重新加载...

阅读全文

修改linux centos系统默认时区

方法一 先安装ntpdate: yum install -y ntpdate 再选择一个时间服务器来更新时间: ntpdate time.windows.com 恢复系统时间为utc时间 ln -sf /usr/share/zo...

阅读全文

2 条评论

回复 fanfan 取消回复