关于信息泄露(3)git泄露

        首先,介绍一下git。Git是一个开源的分布式版本控制系统 ,简单的可以理解为Git 是一个内容寻址文件系统,也就是说Git 的核心部分是键值对数据库。 当我们向 Git 仓库中插入任意类型的内容(开发者们在其中做的版本信息修改之类的操作),它会返回一个唯一的键通过该键可以在任意时刻再次取回该内容。

        git泄露漏洞成因:在配置不当的情况下,可能会将“.git”文件(git目录:使用git init初始化git仓库的时候,生成的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中)直接部署到线上环境,这就造成了git泄露问题。

        检测方法还是dirsearch

        就是引入了新的工具:githack

介绍实战的话,还是以ctfhub为主

看题目已经给了提示

直接用dirsearch扫

这里使用命令过滤了一些无用的回显

dirsearch常用命令

-u    指定url
-e 语言    指定网站语言,一般用-e*即所有语言
-i    保留响应状态码(不同状态码用逗号分隔,可指定范围,如-i 200,300-400)
-x    排除响应状态码(不同状态码用逗号分隔,可指定范围,如-x 400,400-500)
-w    指定字典
-r    递归目录(即可扫描新扫描出的目录下的目录)
-random-agents    使用随机User-Agent

成功找到了.git文件

进入到githack文件地址下,使用命令克隆目录

这些事githack常用的命令:

git init 初始化一个git仓库

git add x.txt 添加文件

git commit -m "wrote a test file" 提交文件

git rm x.txt 删除文件

git commit -m "remove x.txt" 恢复文件

git stash pop 读取最近一次保存内容

git stash list 列出所有备份,可以利用这个列表决定从哪个地方恢复

git status 查看当前仓库状态和内存状态

git reset --hard 回退版本

git diff 对比

git log 显示到HEAD所指向的commit为止的所有历史记录,从最近到最远,可以看到3次

拷贝成功,进入到这个文件下(用gui界面直接拖可能更方便一点),

使用gitlog显示当前版本分支历史

我的理解就是

remove flag 表示当前版本

add flag 表示这次提交的版本

init表示初始的版本

然后就是使用git diff命令来对比提交的版本

忘记截图了,效果大概就是这样,就可以得到flag

后面这个题也是同样的步骤

同样的操作发现,对比信息中没有flag,但是有一个txt文件很可疑

查看发现,找不到这个文件,说明可能被删除了

使用命令读取最近一次保存的内容
成功得到了flag

第三题通过与第一题同样的方法也得出了flag


纯小白,如有错误欢迎指正。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值