SVN信息泄露漏洞

1 SVN 简介

  • SVN(subversion)是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就用用于多个人共同开发同一个项目,实现的共享资源,实现最终集中式的管理。在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的.svn文件夹,其中包含重要的源代码信息:
  • 造成SVN源代码漏洞的主要原因是管理员操作不规范,在发布代码时未使用导出功能,而是直接复制代码文件夹到WEB服务器上,导致.svn被暴露于外网环境,黑客对此可进一步利用:
    • 利用其中包含的用于版本信息追踪的 .svn/entries 文件,获取到服务器源码、svn服务器账号密码等信息;
    • 利用 .svn/wc.db 数据库文件获取到一些数据库信息;
    • 利用SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,则可以直接获得文件源代码。

2 SVN目录

  1. entriesformat文件,数据只有个数字12。

  2. wc.db-journal空文件

  3. tmp空目录

  4. pristine里是一些00~ff的名称的文件夹,每个文件夹里有若干哈希过的.svn-base备份文件。

  5. wc.db文件用SQLiteStudio软件打开 wc.db文件,在 NODES 表中,遍历这个表里的每一行,就可以下载到整个项目里的代码了,而且还能得到对应的真实文件名。

  6. 不同SVN版本的差异:

    1. svn1.7以及以后的版本则只在项目根目录生成一个.svn文件夹,里面的pristine文件夹里面包含了整个项目的所有文件备份

    2. 在 svn1.6 及以前版本会在项目的每个文件夹下都生成一个.svn文件夹,里面包含了所有文件的备份,文件名为 .svn/text-base/文件名.svn-base

3 SVN信息泄露漏洞危害

  1. 获取到网站源代码:通过源代码分析其它安全漏洞,从而对网站服务器及用户数据造成持续威胁
  2. 获取到网站目录结构

4 漏洞利用

  1. 下载EXP:0xHJK/dumpall: 一款信息泄漏利用工具,适用于.git/.svn/.DS_Store泄漏和目录列出 (github.com)

    1. 类似漏洞有:.git/.svn/.DS_Store
  2. 下载网站源码:

    # dumpall -u http://www.webhack123.com/.svn
    # ls www.webhack123.com_None

5 漏洞修复

  1. 不要使用svn checkoutsvn up更新服务器上的代码,使用svn export(导出)功能代替;
  2. 服务器软件(Nginx、apache、tomcat、IIS等)设置目录权限,禁止访问.svn目录;
  3. 删除 /.svn 文件夹

SVN信息泄露漏洞的更多相关文章

  1. WordPress Backdoor未授权访问漏洞和信息泄露漏洞

    漏洞名称: WordPress Backdoor未授权访问漏洞和信息泄露漏洞 CNNVD编号: CNNVD-201312-497 发布时间: 2013-12-27 更新时间: 2013-12-27 危 ...

  2. Linux kernel 内存泄露本地信息泄露漏洞

    漏洞名称: Linux kernel 内存泄露本地信息泄露漏洞 CNNVD编号: CNNVD-201311-467 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级:    ...

  3. Linux Kernel ‘/net/socket.c’本地信息泄露漏洞

    漏洞名称: Linux Kernel ‘/net/socket.c’本地信息泄露漏洞 CNNVD编号: CNNVD-201312-037 发布时间: 2013-12-04 更新时间: 2013-12- ...

  4. Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞

    漏洞名称: Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞 CNNVD编号: CNNVD-201311-054 发布时间: 2013-11-06 更新时间: 2013- ...

  5. Linux Kernel ‘/bcm/Bcmchar.c’本地信息泄露漏洞

    漏洞名称: Linux Kernel ‘/bcm/Bcmchar.c’本地信息泄露漏洞 CNNVD编号: CNNVD-201311-053 发布时间: 2013-11-06 更新时间: 2013-11 ...

  6. PuTTY 信息泄露漏洞

    漏洞名称: PuTTY 信息泄露漏洞 CNNVD编号: CNNVD-201308-380 发布时间: 2013-08-27 更新时间: 2013-08-27 危害等级: 低危   漏洞类型: 信息泄露 ...

  7. Linux kernel ‘key_notify_policy_flush’函数信息泄露漏洞

    漏洞名称: Linux kernel ‘key_notify_policy_flush’函数信息泄露漏洞 CNNVD编号: CNNVD-201307-072 发布时间: 2013-07-05 更新时间 ...

  8. Linux kernel ‘net/key/af_key.c’信息泄露漏洞

    漏洞名称: Linux kernel ‘net/key/af_key.c’信息泄露漏洞 CNNVD编号: CNNVD-201307-071 发布时间: 2013-07-05 更新时间: 2013-07 ...

  9. Roundcube Webmail信息泄露漏洞(CVE-2015-5383)

    Preface Software: https://roundcube.net/Versions: 1.1.x<1.1.2(亲测1.1.5也有效)CVE: CVE-2015-5383Author ...

  10. AIX 5335端口IBM WebSphere应用服务器关闭连接信息泄露漏洞的修复

    今天按要求协助进行漏洞修复,有个“IBM WebSphere应用服务器关闭连接信息泄露漏洞”,一直没太搞清是不是没打补丁引起的问题. 感觉同样的安装有的报这漏洞有的不报,而报的有的是应用端口,有时是控 ...

随机推荐

  1. React Server Component: 混合式渲染

    作者:谢奇璇 React 官方对 Server Comopnent 是这样介绍的: zero-bundle-size React Server Components. 这是一种实验性探索,但相信该探索 ...

  2. Linux系统各种库/软件版本输出指令

    日常开发基于Linux系统(其实更多的是Ubuntu平台),平时总会遇到一些情况需要查看某个库或者软件的版本信息,在这里做一下简单的记录. 1. 查看glibc版本 方法一:使用ldd指令 cv@cv ...

  3. SpringMVC02:返回值、json数据、文件上传、拦截器

     一.响应返回值 1.搭建环境(两个webapp,不要选错) 2.响应之返回值是String类型 package cn.itcast.controller; import cn.itcast.doma ...

  4. Django视图层/FBV与CBV/jsonResponse对象/form表单上传文件/request对象获取文件

    目录 虚拟环境 视图层views 三板斧 jsonResponse对象 form如何上传文件/request对象获取文件 request对象方法 FBV与CBV CBV源码解析 虚拟环境 每创建一个虚 ...

  5. Jmeter 函数助手之__UUID 生成唯一的标识符

    在测试ws协议接口时,常常需要传入唯一标识符,jmeter 提供__UUID.__Random生成随机的字符串,两者区别为:__UUID生成的随机字符串不会重复,而__Random会重复 __UUID ...

  6. C++进阶(哈希)

    vector容器补充(下面会用到) 我们都知道vector容器不同于数组,能够进行动态扩容,其底层原理:所谓动态扩容,并不是在原空间之后接续新空间,因为无法保证原空间之后尚有可配置的空间.而是以原大小 ...

  7. 11、lombok日志记录

    一.添加依赖: <!--lombok插件--> <dependency> <groupId>org.projectlombok</groupId> &l ...

  8. Redis网络模型究竟有多强

    如果面试官问我:Redis为什么这么快? 我肯定会说:因为Redis是内存数据库!如果不是直接把数据放在内存里,甭管怎么优化数据结构.设计怎样的网络I/O模型,都不可能达到如今这般的执行效率. 但是这 ...

  9. 封装 avm 组件经验分享

    avm.js 是一个跨端开发框架,AVM(Application-View-Model)前端组件化开发模式基于标准Web Components组件化思想,提供包含虚拟DOM和Runtime的编程框架a ...

  10. vue中使用echarts来绘制中国地图,NuxtJS制作疫情地图,内有详细注释,我就懒得解释了,vue cli制作疫情地图 代码略有不同哦~~~

    我的代码自我感觉----注释一向十分详细,就不用过多解释都是什么了~~ 因为最近疫情期间在家实在是没事干,想找点事,就练手了个小demo 首先上 NuxtJs版本代码,这里面 export defau ...