美文网首页CTFctf
CTF中的几种git泄露

CTF中的几种git泄露

作者: gakki429 | 来源:发表于2018-09-11 09:24 被阅读233次

git泄露是常见的ctf题型,来看几个例子

Hello World (i春秋 第二届春秋欢乐赛 web)

这里只说git利用的点


由上可知有git泄露
之后尝试使用常用工具GitHack
https://github.com/BugScanTeam/GitHack

这里应该是通过.git/refs/heads/master中存储的commit的object来提取了master分支

但是这并不够,因为本题的考点原意是.git/logs/HEAD文件的利用,而githack并没有对其中的hash提取,因此遗漏了部分的object,即下图中的部分hash

这里使用JGitHack是可以获取到这些遗漏的object的

之后需要手动提取object
这里使用git的底层命令,cat-file和ls-tree
看一下logs中的提交记录

可以发现有两个commit,并且hash值是不一样的,说明有文件出现改动
于是这里手动查看一下

可见他们的tree的hash也是不一样的,说明其中有文件改变,这里继续看两个tree

由此可见其中的flag.js是变动了,他们的hash值不一样,说明文件不一样,分别是
f2b45f1e5af6dc1a8607c11e4ddc5fd077276c45
04bb09bb63fe48e6cab3e1c72a7ef51dda9634b8
所以flag应该就是在这其中
之后可以使用git cat-file命令提取文件

之后再sublime中diff一下这两个文件

会发现有不同,很明显的区别就是flag了,这前三个差异的字符分别是f,l,a,再往后看便是flag了
到这里,这题做完了,但是过程有些繁琐,而且是可以自动完成的
原先我的想法是使用几个git命令自动完成这个,但发现效率有些低
于是我写了这个工具https://github.com/gakki429/Git_Extract
我们试试这个工具

看下获取到的文件,与之前的对比 GitHack
JGitHack Git_Extract

之后直接diff其中的flag.js和f2b45f_flag.js就可以了


登录 (百度杯CTF比赛 十月场 web)

前面是注入
最后可以得到用户
username: bctf3dm1n
password: adminqwe123666
登录之后如下



可见.bctfg1t,应该是git泄露
这题的主要考点是.git/refs/stash



stash是一个用于保存git工作进度的文件
之后利用Git_Extract获取
这里获取了master分值,之后也解析了stash中的存的hash的object


由此可获得提示信息

之后打开这个71ec9d5ca5580c58d1872962c596ea71.php
就可以看到flag了



如果这里使用GitHack也是可以完成的

image.png
之后我们手动查看stash中的object就可以了

从这个commit中的tree继续获取

Backdoor (百度杯CTF比赛 十月场 web)

依旧是git的logs/HEAD,但是这里的commit有些多



使用Git_Extract会帮助你自动解析提取这些commit




查看这几个flag文件可以发下如下提示,之后继续做就好了

如果使用GitHack也可以完成,但是这些commit需要你手动提取,相当的难受

Git常见的利用

.git/index中会缓存git add的文件,这里在没有commit的情况下,也是存在的
https://github.com/lijiejie/GitHack lijiejie的这个就是获取的这个
.git/refs/heads/master 记录了master的commit的hash,由此可以解析出这个commit的所有文件
.git/logs/HEAD其中存储了git的log信息,可以找到历史的commit项
.git/refs/stash 工作进度的临时保存
最后说一个pack的问题,这个好像还没看见有ctf中考到,这里也做了恢复
.git/info/packs packs文件提取恢复

相关文章

  • CTF中的几种git泄露

    git泄露是常见的ctf题型,来看几个例子 Hello World (i春秋 第二届春秋欢乐赛 web) 这里只说...

  • 2022-09-01 CTFer——Web入门

    一、信息收集 敏感目录泄露 1、git泄露 2、git回滚 3、git分支 4、git泄露的其他利用 敏感备份文件...

  • 内存泄露

    [java中内存泄露有几种?如何分析泄露原因](https://zhidao.baidu.com/question...

  • CTF-WEB-babyphp #assert#git泄露

    babyphp——61dctf{8e_careful_when_us1ng_ass4rt} 描述: http://...

  • GitHack:针对.git泄漏的脚本

    GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码。 Git信息泄露的危害很大,渗透...

  • 内存泄漏/管理

    ARC 下内存泄露的那些点performSelector延时调用导致的内存泄露iOS ARC下几种导致内存泄露的场...

  • 写在前面

    最近发现了一个闯关游戏,是练习Linux的命令,比如ctf中的Linux文件泄露什么的,对我这个新人小白真的是帮助...

  • 信息收集系列(三)

    敏感信息泄露 旁站、c段 waf探测 敏感信息泄露 .hg源码泄露 检测工具 dvcss-ripper .git源...

  • Android 性能优化

    几种造成内存泄露的场景 单例中引用的上下文Context,引用了Activity中的Context, 这样会造成内...

  • iOS内存泄露检测方法

    在iOS开发中,检测内存泄露一般有如下几种方法: 1、通过Xcode中Product->Analyze静态分析代码...

网友评论

  • w_不安分:我要去顶一波师傅的仓库:clap:
    w_不安分:https://github.com/gakki429/Git_Extract
  • Imtinmin:之前用了一下githack下全了文件,但是后来又下不全了,不知道怎么回事,请教一下师傅
    gakki429:@Imtinmin 是不是有download failed
    提示,那些文件是不一定有的,应该不碍事,恢复的点有很多,你可以看一下readme的说明,要是两个版本的flag.js都已经复原,就说明git恢复的没问题,有问题再说
    Imtinmin:@gakki429 我一开始用师傅的去下hello world这题可以,后来下失败了
    gakki429:@Imtinmin emmm,git_extract能下全嘛,githack我只知道logs那块有点问题,方便给个题目地址嘛

本文标题:CTF中的几种git泄露

本文链接:https://www.haomeiwen.com/subject/fedygftx.html