Web源码泄露的漏洞:

  • git源码泄露

  • svn源码泄露

  • hg源码泄漏

  • 网站备份压缩文件

  • WEB-INF/web.xml 泄露

  • DS_Store 文件泄露

  • SWP 文件泄露

  • CVS泄露

  • Bzr泄露

  • GitHub源码泄漏

1、git 源码泄露

Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。

漏洞利用工具:GitHack

github项目地址:https://github.com/lijiejie/GitHack

用法示例:

GitHack.py http://www.openssl.org/.git/

修复建议:删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。

2、SVN 源码泄露

SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。

漏洞利用工具:Seay SVN漏洞利用工具

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

3、hg源码泄漏

Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg。

漏洞利用工具:dvcs-ripper

github项目地址:https://github.com/kost/dvcs-ripper

用法示例:

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

4、CVS泄露

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

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

漏洞利用工具:dvcs-ripper

github项目地址:https://github.com/kost/dvcs-ripper.git

运行示例:

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

5、Bazaar/bzr泄露

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

运行示例:

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

6、网站备份压缩文件

管理员将网站源代码备份在Web目录下,攻击者通过猜解文件路径,下载备份文件,导致源代码泄露。

常见的备份文件后缀:

  • .rar

  • .zip

  • .7z

  • .tar.gz

  • .bak

  • .txt

  • .old

  • .temp

漏洞利用工具:御剑

7、WEB-INF/web.xml 泄露

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

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

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)

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

8、DS_Store 文件泄露

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

漏洞利用工具:

github项目地址:https://github.com/lijiejie/ds_store_exp

用法示例:

ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store

9、SWP 文件泄露

swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp。

漏洞利用:直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件。

10、GitHub源码泄漏

GitHub是一个面向开源及私有软件项目的托管平台,很多人喜欢把自己的代码上传到平台托管。攻击者通过关键词进行搜索,可以找到关于目标站点的敏感信息,甚至可以下载网站源码。

类似的代码托管平台还有很多,人才是最大的漏洞。

https://github.com/search?q=smtp+user+@qq.com&type=code

常见的Web源码泄漏漏洞及其利用的更多相关文章

  1. 常见的Web源码泄露总结

    常见的Web源码泄露总结 源码泄露方式分类 .hg源码泄露 漏洞成因: hg init 的时候会生成 .hg 漏洞利用: 工具: dvcs-ripper .git源码泄露 漏洞成因: 在运行git i ...

  2. 常见Web源码泄露总结

    来自:http://www.hacksec.cn/Penetration-test/474.html 摘要 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. .h ...

  3. CTF中常见Web源码泄露总结

    目录00x1 .ng源码泄露 00x2  git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露  ...

  4. CTF常见源码泄漏总结

    .hg源码泄漏 漏洞成因: hg init的时候会生成.hge.g.http://www.am0s.com/.hg/ 漏洞利用:工具:dvcs-ripperrip-hg.pl -v -u http:/ ...

  5. Web源码泄露总结

    Web源码泄露总结 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. 源码泄漏分类 .hg源码泄漏 漏洞成因: hg init的时候会生成.hg e.g.http ...

  6. ctf/web源码泄露及利用办法

    和上一篇文章差不多,也算是对web源码泄露的一个总结,但是这篇文章更侧重于CTF 参考文章: https://blog.csdn.net/wy_97/article/details/78165051? ...

  7. Spring框架之spring-web web源码完全解析

    Spring框架之spring-web web源码完全解析 spring-web是Spring webMVC的基础,由http.remoting.web三部分组成,核心为web模块.http模块封装了 ...

  8. 如何看待B站疑似源码泄漏的问题?

    今天突然看到关于B站源码泄漏事.网曝B站整个网站后台工程源码遭泄露,开源项目平台Github上疑似出现了Bilibili网站后台工程,内含部分用户名密码.目前官方还没对此事作出任何回应,所以还无法确定 ...

  9. 四:WEB源码扩展

    前言:WEB源码在安全测试中是非常重要的信息来源,可以用来进行代码审计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析,获取某ASP源码后就可以采用默认数据库下载为突破,获取某其他脚本 ...

随机推荐

  1. 强化学习之五:基于模型的强化学习(Model-based RL)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...

  2. Oracle时间日期计算--计算某一日期为一年中的第几周

    Oracle时间日期计算--计算某一日期为一年中的第几周 select to_char(sysdate-10,'yyyymmdd')||':iw:'||to_char(sysdate-10,'iw') ...

  3. 深度学习vs机器学习 | 这些本质区别你知道多少?

    目录: 数据相关性 硬件依赖性 特征工程 解决问题方法 执行时间 可解释性 一.数据相关性 深度学习与传统机器学习最重要的区别是,随着数据量的增加,其性能也随之提高.当数据很小的时候,深度学习算法并不 ...

  4. redis吊锤面试官,这篇足够了!

    原理篇 redis 时单线程的为什么还能那么快? 数据都在内存中,运算都是内存级别的运算. redis既然是单线程的为什么能处理那么多的并发数? 多路复用,操作系统时间轮训epoll 函数作为选择器, ...

  5. javascript实现炫酷魔方

    实现效果: 魔方动态转换,同时每个面里的每个块都能进行动态变换. 实现代码: <!DOCTYPE html> <html> <head> <meta char ...

  6. A AK的距离

    时间限制 : - MS   空间限制 : - KB  评测说明 : 1s,128m 问题描述 同学们总想AK.于是何老板给出一个由大写字母构成的字符串,他想你帮忙找出其中距离最远的一对'A'和'K'. ...

  7. WEB缓存系统之varnish缓存项修剪

    前文我们聊了下varnish的状态引擎和不同类型的变量对应该使用在那个状态引擎中,以及每个状态引擎的对应处理事务:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/ ...

  8. const不同位置带来的区别

    const不同位置带来的区别 今天同学问我数据结构时,我对以下代码懵了一下: template <class T> class Link{ public: T data; Link< ...

  9. 浅谈Java构造器

    Java构造器 每个类都有构造方法.如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法. 在创建一个对象的时候,至少要调用一个构造方法.构造方法的名称必须与类同名,一个类可以 ...

  10. 【docker linux】linux系统镜像转化为docker镜像

    概述 使用docker安装linux的同学都知道,你在docker提供的仓库安装linux系统,你就会体验到最精简的.最纯净的linux系统,当然,他会精简到你连ifconfig命令都需要自己配置,恰 ...