Web常见的源码泄露

本文详细解析了多种源码泄露途径,包括.git、.hg、.svn、.cvs、.DS_Store、备份文件、WEB-INF、.bzr等隐藏文件的泄露风险,提供了相应的漏洞利用工具及修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01 .git源码泄漏

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

e.g. http://www.127.0.0.1/.git/config

漏洞利用工具:

1.GitHack

下载地址:https://github.com/lijiejie/GitHack

GitHack 工具使用说明:

  python2 GitHack.py http://127.0.0.1/.git/

需要python2的运行环境

修复建议:

1、删除.git文件

2、通过apache/nginx来拒绝.git访问

0x02 .hg文件泄露

漏洞成因:

Mercurial 是一个 版本控制系统. 开发者可以用它来管理源代码.

hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件

e.g. http://www.127.0.0.1/.git/config

漏洞利用工具:

dvcs-ripper

下载地址 https://github.com/kost/dvcs-ripper

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

修复建议:

删除.hg

0x03 svn源码泄露

漏洞成因:
SVN(subversion)是源代码版本管理软件。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。
但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,
黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。

http://127.0.0.1/.svn/entries

漏洞利用工具:

1、dvcs-ripper

下载地址:https://github.com/kost/dvcs-ripper

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

2、Seay-Svn

下载地址:https://pan.baidu.com/s/1jGA98jG

0x04 cvs文件泄露

漏洞成因

CVS是一个年代比较久远的版本控制系统, 通过它可以追踪源代码的历史变化记录。
但是因为功能比较简单, 而且不支持分支, 所以很早前就被上面提到的SVN替代了。CVS项目在初始化(cvs checkout project)的时候, 会在project目录下创建一个名为CVS的目录。
其中保存了各个文件的修改和commit记录. 通过此目录可以获取代码的历史版本. 其中两个关键文件为:CVS/Root和CVS/Entries, 分别记录了项目的根信息和所有文件的结构

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

取回源码的命令:

bk clone http://url/name dir

这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。

0x05 .DS_Store文件泄露

.DS_Store是Mac下Finder用来保存文件/文件夹的数据文件,每个文件夹下对应一个。
如果开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

http://www.127.0.0.1/.ds_store

漏洞利用工具:

dsstoreexp

下载地址: https://github.com/lijiejie/ds_store_exp

修复建议:

删除.Ds_Store文件

0x06 网站备份压缩文件

漏洞成因: 在网站的使用过程中,往往需要对网站中的文件进行修改、升级。这时就需要对网站进行备份,当备份文件被网站管理员留在该网站目录下而且没有设置访问权限时,就有可能导致备份文件被下载,从而埋下安全隐患。

部分常见的网站备份文件后缀名

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

部分常见的备份文件名:

0
www
back
backup
web
temp
data
website
新建文件夹

修复建议:

把备份文件删除或移出web根目录

0x07 WEB-INF泄露

WEB-INF是Java的WEB应用的安全目录。WEB-INF目录"包含了所有web应用会用到但是不处于web路径中的资源", 也就是说, WEB-INF目录下的内容是不属于公开页面的。
web应用可以通过getResource等API在servlet的上下文中访问到这些资源。

WEB-INF目录:

WEB-INF/web.xml
web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则。

WEB-INF/classes
包含了站点所有用的class文件,包括servlet class和非servlet class

WEB-INF/lib
存放web应用需要的JAR文件

WEB-INF/src
源码目录,按照包名结构放置各个java文件

WEB-INF/database.properties
数据库配置文件

WEB-INF/tags
存放了自定义标签文件

META-INF
相当于一个信息包。

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

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

修复建议:
发布前确认WEB-INF目录是禁止访问的, 或者在server设置好对于的过滤规则。

0x08 .bzr源码泄露

漏洞成因:
bzr是个版本控制工具, bzr在初始化项目时(bzr init/init-repo), 也会在项目根目录产生名为.bzr的隐藏目录。

 e.g. http://www.127.0.0.1/.bzr/

漏洞利用工具:

dvcs-ripper

下载地址 https://github.com/kost/dvcs-ripper

命令:

rip-bzr.pl -v -u http://127.0.0.1/.bzr/

修复建议:

删除.bzr文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值