×

Git隐藏flag的新姿势

96
王一航
2017.07.16 09:58* 字数 92

隐藏流程 :

mkdir misc
cd misc
git init
echo "my file" > index.php
git add index.php
git commit -m "Init commit"
echo "SniperOJ{xxxxxx}" > flag
git stash save "hide my flag"
git log
git reflog

非标准恢复流程 :

这个题目当时我并不是通过 git 命令直接 做出来的
而是使用 : 
cat `find .`
这个命令可以直接递归打印当前文件夹下所有的文件内容
然后看到了一条比较奇怪的 commit id
image.png

然后直接 reset 到这个 commit id 就可以直接恢复到提交 flag 的缓存之前的那个状态了

image.png

标准恢复流程

法一

git log --reflog
git reset --hard af36ba2d86ee43cde7b95db513906975cb8ece03
image.png

法二

git stash list | tee
git stash pop # 或者使用 git stash apply
image.png

参考链接 :

https://git-scm.com/book/tr/v2/Git-Tools-Stashing-and-Cleaning
http://blog.csdn.net/hudashi/article/details/7664710
https://github.com/jivoi/junk/blob/master/pwnerrank/misc/git.sh

CTF
Web note ad 1