信息泄露总结

发布时间:2023年12月27日

一、备份文件下载

1.1 网站源码

??常见的网站源码备份文件后缀:

  • tar
  • tar.gz
  • zip
  • rar
    ??常见的网站源码备份文件名:
  • web
  • website
  • backup
  • back
  • www
  • wwwroot
  • temp

1.2 bak文件泄露

??有些时候网站管理员可能为了方便,会在修改某个文件的时候先复制一份,将其命名为xxx.bak。而大部分Web Server对bak文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码。
??方法:将例如index.php.bar文件重命名index.php,再打开。
在这里插入图片描述

1.3 vim缓存

??当vim异常退出时,都会生成一个用于备份缓冲区内容的swp临时文件,来记录了用户在非正常关闭vim编辑器之前未能及时保存的修改,用于文件恢复。假如原文件名为index.php

  • 第一次产生的交换文件名为 .index.php.swp
  • 第二次产生的交换文件名为 .index.php.swo
  • 第三次产生的交换文件名为 .index.php.swn

方法:同上,改文件名为index.php再打开。

1.4 .DS_Store

??.DS_Store是 Mac OS 保存文件夹的自定义属性的隐藏文件,通过.DS_Store可以知道这个目录里面所有文件的清单。直接访问xxx/.DS_Store可以下载该文件,但是无法读取,要想读取该文件,需要用到ds_store_exp.py,用法:python ds_store_exp.py <url>/.DS_Store
在这里插入图片描述
再访问该脚本扫描到的文件/文件夹。

二、Git泄露

2.1 git知识点

  • .git目录:使用git init初始化git仓库的时候,生成的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。
  • .git/config:Git仓库的配置文件
  • .git/config:这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的paren

    除了上述文件,还有其他文件。

??git信息泄露的原因:当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

??判断是否存在git泄露
使用curl访问目标网址下的xxx/.gitxxx/.git/config或者xxx/.git/HEAD,看是否有内容返回。
在这里插入图片描述
说明存在git信息泄露,再使用githacker。使用githacker的目的是去github上下载网站源码。

2.1 log

下载网站源码:python2 Githack.py http://challenge-b600332c47be484d.sandbox.ctfhub.com:10800/.git
在这里插入图片描述

进入相应的目录,直接使用git log查看日志
在这里插入图片描述

当前所处的版本为remove flag,flag 在add flag 这次提交中

  • 方法一:直接与 add flag (dc33) 这次提交进行比对,命令如下:git diff dc33(add flag)
    在这里插入图片描述

  • 方法二:直接切换到add flag (dc22) 这个版本。命令如下:git reset --hard dc33(add flag)
    在这里插入图片描述

2.2 stash

??知识点:git 泄露 .git/refs/stashstash用于保存 git 工作状态到 git 栈,在需要的时候再恢复。使用stash命令可以恢复文件。

下载网站源码:python2 Githack.py http://challenge-ccc966c169231c6b.sandbox.ctfhub.com:10800//.git
在这里插入图片描述

进入到相应文件夹,执行 git stash list 查看是否有stash:
在这里插入图片描述

此处存在stash

git stash pop弹出git栈中的文件。
在这里插入图片描述
flag就在txt文件中。
> 可以将stash栈理解为一个放被删除的文件的栈,就相当于一个回收站。

三、SVN泄露

3.1 SVN简介

??SVN(subversion)是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就用用于多个人共同开发同一个项目,实现的共享资源,实现最终集中式的管理。在使用 SVN 管理本地代码过程中,使用svn checkout功能来更新代码时,项目目录下会自动生成隐藏的.svn文件夹,其中包含重要的源代码信息;
造成SVN源代码漏洞的主要原因是管理员操作不规范,在发布代码时未使用导出功能,而是直接复制代码文件夹到WEB服务器上,导致.svn被暴露于外网环境,黑客对此可进一步利用:

  • 利用其中包含的用于版本信息追踪的.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息;
  • 利用.svn/wc.db数据库文件获取到一些数据库信息;
  • 利用SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,则可以直接获得文件源代码。

3.2 SVN的文件

  • entriesformat文件,数据只有个数字12。
  • wc.db-journal空文件
  • tmp空目录
  • pristine里是一些00~ff的名称的文件夹,每个文件夹里有若干哈希过的.svn-base备份文件
  • wc.db文件用SQLiteStudio软件打开 wc.db文件,在 NODES 表中,遍历这个表里的每一行,就可以下载到整个项目里的代码了,而且还能得到对应的真实文件名。

3.3 SVN利用

  1. 判断是否存在SVN泄露
    在这里插入图片描述

    说明存在svn泄露

  2. 使用dvcs-ripper下载.svn文件夹,命令如下:rip-svn.pl -u <url>/.svn。注意要安装perl环境。
    在这里插入图片描述
  3. pristine文件夹中找备份文件。
    在这里插入图片描述

四、Hg泄露

??当开发人员使用 Mercurial(hg) 进行版本控制,对站点自动部署。在初始化项目时,HG会在当前文件夹下创建一个.hg 隐藏文件夹,其中包含代码和分支修改记录等信息。
可以先使用curl <url>/.hg测试一下:
在这里插入图片描述

之前.svn也是301,说不定存在hg泄露。

使用dvcs-ripper下载网站源码,命令如下:rip-hg.pl -v -u <url>/.hg/
在这里插入图片描述
使用tree .hg查看文件夹结构:
在这里插入图片描述
递归查找子文件目录下的关键词flag:grep -r flag
在这里插入图片描述
进入cd .hg/store/fncache,这里应该是保存网站源码缓存的地方,可以看到有index.html50x.html
在这里插入图片描述
故访问http://challenge-e04eb8044f3c9d3e.sandbox.ctfhub.com:10800/flag_1807820070.txt.
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_55202378/article/details/135195192
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。