常见Web源码泄露总结

简介: 常见Web源码泄露总结

1. 源码泄露分类

  • 版本控制系统造成的文件泄露
  • .DS_Store
  • 配置文件泄露
  • 网站备份文件泄露

2. hg源码泄漏

2.1.漏洞信息

Mercurial 是一个版本控制系统,一种轻量级分布式版本控制系统,采用 Python 语言实现,开发者可以用它来管理源代码。hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件夹

删除.hg

2.2. 漏洞利用

工具:

dvcs-ripper

下载地址:

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

工具使用方法

rip-hg.pl -v -u http://www.example.com/.hg/

2.3. 漏洞修复

删除web目录中所有.hg隐藏文件夹

3. git源码泄漏

3.1. 漏洞信息

在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。

3.2. 漏洞利用

工具:

GitHack

下载地址:

https://github.com/lijiejie/GitHack

利用方法:

GitHack.py http://www.example.com/.git/

也可以使用rip-git工具进行漏洞利用

rip-git.pl -v -u http://www.example.com/.git/

4. SVN导致文件泄露

4.1. 漏洞信息

使用svn checkout后,项目目录下会生成隐藏的.svn文件夹(Linux上用ls命令看不到,要用ls -al命令)。

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

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

4.2. 漏洞利用

工具:

dvcs-ripper

下载地址:

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

工具使用方法

rip-svn.pl -v -u http://www.localhost.test/.svn/

4.3. 漏洞修复

删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。

5. CVS泄漏

5.1. 漏洞信息

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。

http://url/CVS/Root 返回根信息http://url/CVS/Entries 返回所有文件的结构


5.2. 漏洞利用


工具:

dvcs-ripper

下载地址:

工具使用方法

    rip-cvs.pl -v -u http://www.example.com/CVS/

    5.3. 漏洞修复

    删除CSV文件夹

    6. Bazaar/bz泄漏

    6.1. 漏洞信息

    bzr也是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面。

    6.2. 漏洞利用

    工具:

    dvcs-ripper

    下载地址:


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

    工具使用方法


    rip-bzr.pl -v -u http://www.example.com/.bzr/

    6.3. 漏洞修复

    删除web目录中所有.bzr隐藏文件夹

    7. DS_Store文件泄漏

    7.1. 漏洞信息

    .DS_Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。由于开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。

    7.2. 漏洞利用

    工具:

    dsstoreexp

    下载地址:


    https://github.com/lijiejie/ds_store_exp

    工具使用方法


    python ds_store_exp.py http://www.example.com/.DS_Store

    7.3. 漏洞修复

    删除各文件夹下的.DS_Store

    8. WEB-INF/web.xml泄露

    8.1. 漏洞信息

    WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。


    WEB-INF主要包含一下文件或目录:


    /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。/WEB-INF/database.properties:数据库配置文件


    通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

    漏洞成因:

    一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来

    8.2. 漏洞检测

    检测是否能访问web.xml文件,如果能则可能存在源码泄露

    8.3. 漏洞利用

    通过找到web.xml文件,推断class文件的路径,最后下载class文件,在通过反编译class文件,得到网站源码。

    8.4. 漏洞修复

    修改Nginx配置文件禁止访问WEB-INF目录就好了:location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他

    9. 网站备份压缩文件泄露

    9.1. 漏洞信息

    在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。


    该漏洞的成因主要有以下两种:

      1、服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。2、编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。


      9.2. 漏洞检测

      该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。


      .rar .zip .7z.tar.gz .bak .swp .txt .html


      9.3. 漏洞修复


      不要将备份文件放到web目录或者限制对备份文件所在文件夹的访问

      相关文章
      |
      8月前
      |
      SQL 存储 数据库
      基于Web技术的在线考试系统的设计与实现(论文+源码)_kaic
      基于Web技术的在线考试系统的设计与实现(论文+源码)_kaic
      |
      7月前
      |
      传感器 小程序 搜索推荐
      (源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
      通过电子班牌设备和智慧校园数据平台的统一管理,在电子班牌上,班牌展示、学生上课刷卡考勤、考勤状况汇总展示,课表展示,考场管理,请假管理,成绩查询,考试优秀标兵展示、校园通知展示,班级文化各片展示等多种化展示。
      105 0
      (源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
      |
      8月前
      |
      Java 应用服务中间件 测试技术
      深入探索Spring Boot Web应用源码及实战应用
      【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
      121 3
      |
      4月前
      |
      安全 应用服务中间件 开发工具
      Web安全-SVN信息泄露漏洞分析
      Web安全-SVN信息泄露漏洞分析
      246 2
      |
      4月前
      |
      SQL 开发框架 安全
      Web安全-IIS短文件名泄露
      Web安全-IIS短文件名泄露
      86 2
      |
      4月前
      |
      负载均衡 网络协议 应用服务中间件
      web群集--rocky9.2源码部署nginx1.24的详细过程
      Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
      |
      8月前
      |
      Java 关系型数据库 MySQL
      基于Web的影院信息管理系统设计与实现(论文+源码)_kaic
      基于Web的影院信息管理系统设计与实现(论文+源码)_kaic
      |
      6月前
      |
      算法 计算机视觉 C++
      web 丨 nft 元宇宙链游项目系统开发模式逻辑详细(成熟源码)
      一、什么是元宇宙? 元宇宙指的是通过虚拟增强的物理现实,呈现收敛性和物理持久性特征的,基于未来互联网,具有链接感知和共享特征的 3D 虚拟空间。 大概可以从时空性、真实性、独立性、连接性四个方面交叉描述元宇宙:
      |
      7月前
      |
      JavaScript 前端开发 Java
      基于SpringBoot+Vue+uniapp的在线开放课程的Web前端的详细设计和实现(源码+lw+部署文档+讲解等)
      基于SpringBoot+Vue+uniapp的在线开放课程的Web前端的详细设计和实现(源码+lw+部署文档+讲解等)
      |
      7月前
      |
      中间件 Java 生物认证
      Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
      Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份