CTFHub | Stash

发布于:2022-11-29 ⋅ 阅读:(268) ⋅ 点赞:(0)

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

Stash:

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

网页显示内容

        

        

0x02 解题过程

        根据题目描述内容,此题与之前的 log 类似,应该是了解对 git 的使用。在解题 log 时使用了工具 GitHack 将网页目录 clone 到本地目录下,然后在 clone 的目录下使用 log 命令查看历史记录,并发现 add flag 中存在 flag 。那么此题思路与前面题目一致,同样在查看历史记录时发现 add flag 中存在一个未知的文本文件,怀疑 flag 存在于文本文件中,通过对 git 命令的学习以及题目的提示,使用 git stash pop 命令可以恢复文件。最后查看文本文件发现此题 flag 。

        

使用GitHack工具clone题目源码到本地目录下

python2 GitHack.py http://challenge-7eac799165e7a656.sandbox.ctfhub.com:10800/.git/

        

在GitHack工具的dist目录中打开刚才clone的网站目录文件

         

在终端打开clone的目录路径,并使用git log命令查看其历史记录

git log     #查看历史记录

        

使用git diff命令可以对比提交版本,发现在add flag版本中有一个文本文件

git diff 57169348833242a4b2a05130a0b7f826ca691651

        

通过对git命令的学习和题目的提示,使用stash命令可以恢复文件

git stash pop     #恢复代码

        

这时查看网页目录中发现成功恢复文本文件,打开文本文件发现此题flag

        

        

0x03 git stash命令

命令 描述

git stash

保存当前工作进度,会把暂存区和工作区的改动保存起来
git stash save 'hello world' 使用save可以添加一些注释

git stash list

显示保存进度的列表

git stash pop

恢复最新进度到工作区,默认将工作、暂存区的改动都恢复到工作区
git stash pop --index 恢复最新进度到工作区和暂存区,尝试将暂存区的改动恢复到暂存区
git stash pop stash@{1} 恢复指定的进度到工作区

git stash apply [–index] [stash_id]

将堆栈中的内容应用到当前目录,该命令不会将内容从堆栈中删除

git stash drop [stash_id]

删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度

git stash clear

删除所有存储的进度

git stash show

查看堆栈中最新保存的stash和当前目录的差异

git stash branch

在最新的stash创建分支

        注意: 使用 git stash pop 命令恢复进度后,当前进度会被删除 

        

        

0x04 参考文献

[1].Git. Git存储文档[EB/OL]. [2022-10-09]. https://git-scm.com/docs/git-stash.

[2].淹不死的水. git stash详解[EB/OL]. [2022-10-09]. https://blog.csdn.net/stone_yw/article/details/80795669.

        

        

0x05 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

本文含有隐藏内容,请 开通VIP 后查看