文章参考:Nu1L战队所著《从0到1:CTFer成长之路》

目录

1 git泄露

1.1 常规git泄露

1.1.1 git介绍

1.1.2 git使用

1.1.3 泄露利用

1.2 git回滚

1.2.1 回滚演示

1.2.2 回滚利用

1.3 git分支

1.3.1 创建git分支

1.3.2 创建利用


1 git泄露

1.1 常规git泄露

1.1.1 git介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

1.1.2 git使用

git工作流程:

git使用方法

1)初始化git仓库

git init

该命令执行完后会在当前目录生成一个 .git 目录。

或者使用指定目录作为git仓库

git init newrepo

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

2)git提交

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交

git add *.c
git add README
git commit -m '初始化项目版本'

1.1.3 泄露利用

创建git环境

通过使用现成工具或者自己编写脚本

工具链接:https://github.com/denny0223/scrabble

成功获取flag

1.2 git回滚

1.2.1 回滚演示

git作为版本控制工具,会保存每次提交的修改,当存在git泄露时,可以通过回滚git reset恢复到以前的版本

相关命令如下所示

cat flag.php
sudo vi flag.php
cat flag.php
sudo git add flag.php
sudo git commit -m "old"

演示如下

1.2.2 回滚利用

利用scrabble获取源码,而后使用git reset --hard HEAD^ 跳到上一版本

代码如下

./scrabble http://127.0.0.1/
ls
cat flag.php
git reset --hard HEAD^
cat flag.php

演示如下

成功获取原有版本flag

1.3 git分支

git允许使用多个分支,从而让用户可以把工作从开发主线上分离出来,以免影响开发主线。使用git log只能找到在当前分支上的修改,因此有时需要切换分支。此处我们使用功能较强的GitHacker工具

1.3.1 创建git分支

创建分支和切换分支命令如下

git branch (branchname)
git checkout (branchname)

首先,创建测试环境

sudo git init
sudo git add flag.php
sudo git commit -m "第一次版本提交"
git branch

结果如下

其次创建分支

sudo git checkout -b newtest
git branch
sudo vi flag.php
cat flag.php
sudo git add flag.php
git commit -am "branch version"

结果如下

最后,测试分支内容

sudo git checkout master
cat flag.php
sudo git checkout newtest
cat flag.php

可知分支内容发生改变

1.3.2 创建利用

使用工具链接:https://github.com/WangYihang/GitHacker

工具下载

# Install requests
pip install requests
# Download source
# Notice: NO NOT DOWNLOAD ZIP FROM GITHUB
git clone https://github.com/wangyihang/GitHacker.git

工具使用

python GitHacker.py http://127.0.0.1/.git/

如下查看相关内容,为master分支内容

如果要还原分支内容,需要手动下载分支的head信息,并复用GitHacker代码

Githacker代码,先下载object文件,而后使用git fsck检测,并继续下载缺失文件,可以复用

baseurl  = complete_url('http://127.0.0.1/.git/')
temppath = replace_bad_chars(get_prefix(baseurl))
fixmisssing(baseurl,temppath)

执行如下代码

python GitHacker.py
ls
cat newtest
cd 127_0_0_1_/
git diff HEAD 70e0

结果如下所示

成功获取flag

2 SVN泄露

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

3 HG泄露

g init的时候会生成.hg

e.g.http://www.example.com/.hg/

漏洞利用:

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

CTF信息搜集——敏感目录泄露相关推荐

  1. CTF信息搜集/泄露

    文章目录 注释未删除 js前台拦截绕过 响应头 robots.txt泄露 phps源码泄露 www.zip源码泄露 .git泄露 .svn泄露 vim泄露 cookie泄露 域名信息 网页特殊信息 观 ...

  2. 信息搜集-敏感信息收集

    敏感信息收集 针对某些安全做的很好的目标,直接通过技术层面是无法完成渗透测试的.在这种情况下,可以利用搜索引擎搜索目标暴露在互联网上的关联信息.例如:数据库文件.SQL注入.服务器配置信息.甚至是通过 ...

  3. WEB安全知识学习 - day01 --信息搜集

    一.信息搜集–IP 内容分发网络(content delivery network或content distribution network,缩写作CDN)指一种通过互联网互相连接的电脑网络系统,利用 ...

  4. 网络安全实验1 敏感信息搜集与密码心理分析

    赞赏码 & 联系方式 & 个人闲话 [实验名称]敏感信息搜集与密码心理分析 [实验目的] 1.理解社会工程学的概念,掌握获取敏感信息的方法 2.提高自我信息保护的意识和方法 3.理解密 ...

  5. Cracer渗透视频课程学习笔记——信息搜集

                                                  信息搜集 渗透一个网站收集这部分信息基本就够用了. 常用渗透测试系统:Back track5 ,parrot ...

  6. WEB中的敏感文件泄露

    文件泄露,根据泄露的信息敏感程度,在WEB漏洞中可以算是中危甚至高危的漏洞,本篇文章就来 介绍下一些常见的泄漏, 主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露. 版本管理 ...

  7. 第一章:渗透测试之信息搜集

    1.收集域名信息 (1)Whois查询 (2)备案信息查询 2.收集敏感信息 3.收集子域名信息 4.收集常用端口信息 5.指纹识别 6.查找真实IP 7.收集敏感目录文件 8.社会工程学 1.收集域 ...

  8. 渗透测试之信息搜集总结

    在渗透测试的第一步,就是进行信息搜集,在做渗透测试时我们越了解目标,测试的工作就越容易.只要是与网站相关的的信息,都要竟可能多的去搜集. 目录 收集域名信息 whois查询 备案信息查询 收集敏感信息 ...

  9. 信息搜集学习--在线工具学习

    这件事就要从查我信息的表哥说起了 刚到实验室的时候没几天,无聊扫实验室的ip,本来是想找摄像头端口的,然是让我发现了一个ip开放着8000,饶有兴致的打开了他,发现是一个网站目录,我就下了些里面的文件 ...

最新文章

  1. 在EXCEL中怎么将多个CSV文件合并成一个文件
  2. JS编程建议——37:推荐使用replace(1)
  3. 前端学习(1806):前端调试之列表伪类练习二
  4. 使用 ServiceStack 构建跨平台 Web 服务(转)
  5. Jeecg-Uniapp 移动框架开发环境搭建—— APP解决方案
  6. (42)css特异性
  7. 《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)--宋宝华...
  8. 转 基于.NET平台的分层架构实战
  9. Qtum量子链周报(7月29日-8月4日)
  10. DDR 6 内存已经投入研发
  11. 神经网络模型的基本原理,如何建立神经网络模型
  12. OE分布式智能云生态助力全民挖矿
  13. 水仙花数的判断(JAVA)
  14. 【渝粤题库】广东开放大学 文化创意学 形成性考核
  15. STM32 无刷电机BLDC 1KW带刹开发板 PDF原理图 源代码 MDK源码
  16. linux vim插件
  17. 关于python卸载遇到 No python 版本号 installation was detected的问题
  18. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度
  19. 学校里计算机挂科要重修吗,大学期间挂科有什么后果?重修是否会被记入档案?学生要提前了解...
  20. 深度学习中的batch和epoch

热门文章

  1. 来一段汇编PWM代码
  2. 西安慧点科技Java基础笔试_java工程师基础笔试题(一)-参考答案
  3. 项目生命周期及其主要工作
  4. spfa 单源最短路究极算法
  5. asp.net页面的AutoEventWireup=true属性设置
  6. 基于Vue+Node+MySQL的美食菜谱食材网站设计与实现
  7. iOS 屏幕尺寸、分辨率、适配、UI规范
  8. 强制感恩无异于剥夺受助者自尊(摘自华龙网)
  9. GPS与AGPS定位服务
  10. WinExec执行批处理命令