web常见源码泄露

web常见源码泄露备忘录

背景

网上已经有非常多的资料了,写本文主要是经常在CTF中和web渗透测试时遇到,所以当作自己的备忘录记录一下

源码泄漏分类

.hg源码泄漏

hg是类似于git的一种分布式管理

漏洞成因:

hg init的时候会生成.hg(初始化)

fuzz:

1
http://url/.hg/

漏洞利用:

工具:dvcs-ripper

1
rip-hg.pl -v -u http://url/.hg

.git源码泄漏

漏洞成因:

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

fuzz:

1
http://url/.git/config

存在该页面,可以看到配置信息,说明存在该漏洞

漏洞利用:

工具:GitHack

1
python GitHack.py http://url/.git/

工具:dvcs-ripper

1
rip-hg.pl -v -u http://url/.git

.DS_Store文件泄漏

漏洞成因:

在发布代码时未删除文件夹中隐藏的.DS_store

fuzz:

1
http://url/.DS_Store

漏洞利用:

工具:dsstoreexp

1
python ds_store_exp.py http://url/.DS_Store

编辑器文件泄露

vim文件泄露

非正常关闭vim编辑器(直接关闭终端、电脑断电等),都会生成一个用于备份缓冲区内容的临时文件.swp文件。它记录了用户在非正常关闭vim编辑器之前未能及时保存的修改,用于文件恢复。并且多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。

例如第一次产生一个.test.txt.swp,再次意外退出后,将会产生名为.test.txt.swo的交换文件;而第三次产生的交换文件则为.test.txt.swn依此类推。

vim备份文件

默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,某些情况下可以对其下载进行查看

例如:
index.php的备份文件则为index.php~

phpstorm

使用phpstorm新建项目时,会生成一个.idea`文件夹,这个文件夹有一个workspace.xml`,访问可以得到一些信息。

网站备份压缩文件

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

漏洞成因及危害:

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

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

fuzz

1
2
3
4
5
6
7
.rar
.zip
.7z
.tar.gz
.bak
.txt
.html

SVN泄露

fuzz:

1
http://url/.svn/entries

漏洞利用:

工具:dvcs-ripper

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

WEB-INF/web.xml泄露

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

漏洞成因:

通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个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:数据库配置文件

漏洞利用:

1
http://url/WEB-INF/web.xml

浏览器直接读取,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。一般情况,jsp引擎默认都是禁止访问WEB-INF目录的

CVS泄漏

fuzz

1
2
3
http://url/CVS/Root 返回根信息

http://url/CVS/Entries 返回所有文件的结构

漏洞利用

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

1
bk clone http://url/name dir

查看所有的改变的命令,转到download的目录

1
bk changes

Bazaar/bzr

漏洞利用:

工具:dvcs-ripper

1
rip-bzr.pl -v -u http://url/.bzr/

Reference

文件泄露

常见Web源码泄露解析

本文标题:web常见源码泄露

文章作者:xianyu123

发布时间:2019年04月17日 - 16:24

最后更新:2019年05月22日 - 10:06

原始链接:http://0clickjacking0.github.io/2019/04/17/web常见源码泄露/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------    本文结束  感谢您的阅读    -------------