常见源码泄露

常见源码泄露

摘自:https://lddp.github.io/2018/05/10/WEB-%E6%BA%90%E7%A0%81%E6%B3%84%E6%BC%8F/

0x1 .git源码泄露

当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了

比如某个网站存在.git文件泄露,可以:

http://www.baidu.com/.git

利用方式: github上的githack可以把整个.git备份的文件下载下来。它能解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码

工具

0x2 .svn源码泄露

SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 迁移到 Subversion。

很多网站都使用了 svn 版本控制系统,和使用 git 版本控制器类似,很多开发者网站安全意识不足,代码放到生产坏境中后,没有清理 svn 的一些信息,导致 svn 残留,因此攻击者可以使用工具 dvcs-ripper 下载网站源码。

当可以访问到/.svn/entries的时候,就证明存在了。

比如乌云曾经爆出的某个网站:

http://data.5i5j.com/sitemetrics/.svn/entries

工具 利用命令:

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

当然还有更简单的,seay-svn https://pan.baidu.com/s/1mrNpB">工具

0x3 DS_Store 文件泄露

.DS_Store 文件 MAC 系统是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。如果用户删除以后的副作用就是这些信息的失去。

这些文件本来是给 Finder 使用的,但它们被设想作为一种更通用的有关显示设置的元数据存储,诸如图标位置和视图设置。 当你需要把代码上传的时候,安全正确的操作应该把 .DS_Store 文件删除才正确。通过.DS_Store可以知道这个目录里所有的文件名称。

当访问/.ds_store可以访问的到,就证明存在。例如:

http://www.baidu.com/.ds_store

工具 使用方式:

python ds_store_exp.py http://www.example.com/.DS_Store
0x4 .hg 源码泄露

使用hg init 新建仓库的时候,会生成一个备份文件.hg,当访问/.hg存在的时候,就证明存在该漏洞。例如:

http://www.baidu.com/.hg/

工具 使用方式:

rip-hg.pl -v -u http://www.example.com/.hg/
0x5 常见编辑器备份文件泄露

http://[ip]/.test.php.swp http://[ip]/test.php.bak http://[ip]/test.jsp.old http://[ip]/cgi~ http://[ip]/index.php~ 如果存在这些问题,可以直接下载文件,查看文件内容。

0x6 WEB-INF/web.xml泄露

WEB-INF 是 Java 的 WEB 应用的安全目录。该目录原则上来说是客户端无法访问,只有服务端才可以可以访问。如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。

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

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

不过在一些特定的场合却会让攻击者能读取到其中的内容,从而造成源码泄露.

访问:

http://www.baidu.com/WEB-IBF/web.xml

目录存在的位置是不固定的,要从实际情况出发,在进行渗透测试的时候,我曾经就碰到过。

0x7 网站备份文件泄露

在网站的升级和维护过程中,通常需要对网站中的文件进行修改。此时就需要对网站整站或者其中某一页面进行备份。

当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站 web 目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。

该漏洞的成因主要有是管理员将备份文件放在到 web 服务器可以访问的目录下。

该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。

被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。

文件后缀:

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

比如:

http://wm123.baidu.com/wm123.tar.gz

通过扫描网站的目录,可以发现这些敏感的备份文件,由于浏览器不能直接解析这些文件后缀,导致可以直接下载,查看网站的源码。

0x8 cvs文件泄露

这个,没碰到过。 例如:

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

取回源码的命令:

bk clone http://url/name dir

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

Bazaar/bzr

这个也没见过,暂时做记录。 工具 使用命令:

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

这个工具比较叼,上面的.git,.svn都可以利用

posted @ 2020-09-25 13:42  Ycdtbest  阅读(847)  评论(0编辑  收藏  举报