信息搜集之源码泄漏

网站备份压缩文件

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

常见的备份文件后缀

.rar
.zip
.7z
.tar.gz
.bak    bak是备份文件,为文件格式扩展名。
.txt
.old
.temp
.phps
.sql

 vim缓存

        临时文件是在vim编辑文本时就会创建的文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容

以 index.php 为例 第一次产生的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为 .index.php.swn
注意:index前有 " . "

 git源码泄漏

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

检测漏洞是否存在

网站下面访问/.git/文件夹
如果文件夹存在或403 则存在  就可以使用githack.py进行下载

 漏洞利用工具:GitHack

GIT项目地址GitHub - lijiejie/GitHack: A `.git` folder disclosure exploit

用法示例

放置在python2 目录下调用
python.exe githack路径 url
直接执行进行获取

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

svn源码泄漏

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

检测漏洞是否存在

访问网站下/.svn/entries文件夹
如果存在 则可以使用工具进行下载

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

SVN项目地址​​​​​​GitHub - callmefeifei/SvnHack: 一个Svn信息泄露辅助工具,可以使用这个脚本列取网站目录,读取源码文件以及下载整站代码。

 用法示例

如果存在 则可以使用工具进行下载
python.exe svnhack.py -u url地址 --download

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

DS_Store文件泄漏

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

检测漏洞是否存在

判断存在是否 直接访问网址下.DS_Store文件
存在的话可以使用脚本进行下载

漏洞利用工具:ds_store_exp

DS_Store项目地址GitHub - lijiejie/ds_store_exp: A .DS_Store file disclosure exploit. It parses .DS_Store file and downloads files recursively.

 用法示例

python2.exe ds_store_exp.py url地址

 PHP特性-composer.json泄漏

composer.json文件作用

composer.json文件定义了您当前项目的依赖项,以及依赖项的一些相关信息

常见属性说明

name:表示包的名称

description:表示包的描述

version:表示包的版本

type:表示包的类型

keywords:表示一组用于搜索与筛选的与包相关的关键字

homepage:表示项目网站的url地址

readme:表示README文档的绝对路径

time:表示包的版本发布时间

license:表示包的许可证

authors:表示包的作者

support:表示获取对项目支持的信息对象

require:表示必须安装的依赖包列表

autoload:表示PHP自动加载的映射

minimum-stability:定义了按稳定性过滤包的默认值

repositories:表示自定义的安装源

config:表示一组配置选项

script:表示Composer允许在安装过程的各个部分执行脚本

extra:表示scripts使用的任意扩展数据

检测漏洞是否存在:

访问网站下方composer.json检查是否存在

WEB-INF/web.xml 泄露

  WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。Tomcat默认禁止这个目录,而Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身缺陷),导致可以通过Nginx访问到Tomcat的WEB-INF目录。

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:数据库配置文件
META-INF:相当于一个信息包

检测漏洞是否存在

直接手工访问/web.xml文件,通过是否回显来判断是否可访问该文件。

漏洞利用

        找到web.xml文件后,根据命名规则推断class文件的路径,最后直接访问class文件,或通过反编译等得到网站源码。

如:com.wm.ctf.FlagController 推断的文件路径为
WEB-INF/classes/com/wm/ctf/FlagController.class

SWP 文件泄露

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

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

CVS泄露

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

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

漏洞利用工具:dvcs-ripper

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

运行示例

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

 Bazaar/bzr泄露

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

工具:dvcs-ripper

运行示例:

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

 hg源码泄漏

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

漏洞利用工具:dvcs-ripper

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

用法示例:

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

更多知识请关注下方公众号和知识星球

微信公众号:漏洞挖掘之路

知识星球:漏洞挖掘之路

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初岄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值