Git泄露(CTFHUB的git泄露)

log

当dirsearch 扫描一下,命令:

python dirsearch.py -u  url/.git   发现存在了git泄露

借助kali里面,打开GitHack所在的目录,然后

输入:

python2 GitHack.py -u url/.git/

必须要用Python2

tree 命令  可以看到完整目录

接下来,输入

git diff HEAD^


 Stash

同样步骤后

输入 git stash list

输入 git stash pop

最后cat一下


index

跟上面的步骤差不多


知识点:

      1.什么叫做git泄露?

     git泄露指的是开发人员在开发过程中遗忘删除 .git 文件夹,导致攻击者可以通过 .git 文件夹中的信息获取开发人员提交过的所有源码。从而导致服务器被攻击沦陷。

      2.git泄露原理

    通过泄露的.git文件夹下的文件,还原重建工程源代码

    解析.git/index (index 这个文件就是我们后面提到的暂存区(stage),是一个二进制文件)文件,找到工程中的所有

      去 .git/objects/(objects 所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名)  文件夹下下载 对应的文件

  zlib解压文件,按原始的目录结构写入源代码    

    在git中,这些对象存储文件都是通过zlib进行压缩的,所以我们可以使用zlib将其解压出来,来看看这个文件里面存储的内容是什么:

解压代码如下:

import zlib
import requests
urla = "解压文件地址"
re = requests.get(urla)
ss = re.content
word = zlib.decompress(ss)
print(word)


 

3.   ./git

   使用git init初始化git仓库的时候,会生成一个.git的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。

利用  dirsearch鉴别git泄露就是利用这个原理

 4.git的基本命令和git库工作原理

git init

新建一个文件夹,初始化一个空的git仓库

git add

将工作目录中对文件的修改或新增添加到暂存区(stage)。git被通知要追踪文件的修改

git commit

将暂存区的文件提交到版本库中,永久保存

git status

查看git库中文件的状态。已经被修改的文件,暂存的文件,未被跟踪的文件

tree

以树状图的形式列出目录的所有内容

创建一个文件,并用git add追踪它,再用git commit提交

git log

查看所有的提交数据

git ls-files -u

显示冲突的文件,-s是显示标记为冲突已解决的文件

git diff

对比工作区和stage文件的差异

git diff -cached

对比stage和branch之间的差异

git ls-files -stage

检查保存在stage的文件

git reset -hard HEAD

放弃工作区和index的改动,HEAD指针(这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent)仍然指向当前的commit

git checkout 

恢复被修改的文件

git reflog
查看回滚之前的版本

git stash

保存当前工作目录的临时状态

git stash save  “message”

将保存到当前工作目录状态到一个新的stash,并添加一条可选的消息来描述stash的内容

git stash list

查看当前保存的stash列表

git stash show

查看最新的stash

git stash apply

将某个stash的变更应用到当前工作目录

git stash  pop

与git stash apply相似,但是应用完后删除

git stash --all

保存所有修改

  • 34
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值