GIT泄露
原理:
Git泄露是指在使用Git版本控制系统时,由于配置不当或者操作失误,导致敏感信息(如密码、密钥、源代码等)被意外地上传到公开的代码仓库或者其他公开可访问的地方,从而被未授权的人获取到。
Git版本控制
Git就是一种版本控制器,用于管理linux内核开发
git库结构
Git泄露常用命令
除了一些git中的命令外,还会配合linux命令使用,比如:ls,cat等
产生泄露的原因
看了这些原因,产生泄露的原因就是因为信息提交到了代码仓库或者一些公开访问的地方,导致可以进行访问来获取信息,才产生了泄露
判断是否存在git泄露
一般情况在没有提示是git时,通过扫描后台来确定是否存在git泄露,或者可以尝试访问git网页,在确定存在git泄露之后,就可以通过githack来下载git文件,再配合git命令来查看git文件中的内容
Log
顺便说一下,这个GitHack,最好是去https://github.com/BugScanTeam/GitHack下载,有些下载完在ctfhub里面好像用不了,有点搞心态
打开环境,没有东西,先进行dirsearch扫描
存在git泄露
用githack扫描
python2 GitHack.py -u http://challenge-0a3f0a6af7ed6200.sandbox.ctfhub.com:10800/.git
使用git log查看历史记录
可以看见有三个历史记录,第二个就add flag,毫无疑问访问第二个
用git diff来比对文件,对比出输出的就是两个内容上的差别
①:git diff:当工作区有改动,临时区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空,diff对比的是“工作区与暂存区的共同文件”。
②:git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别
Stash
stash是git的一个操作命令
git stash list 查看隐藏的记录
git stash pop 恢复隐藏的内容,同时删除隐藏记录
git stash apply 恢复隐藏的内容,但不会删除隐藏记录
使用stash pop/apply可以选择恢复哪条记录,如恢复stash@{1}记录,则使用git stash pop stash@{1}或者git stash apply stash@{1}
确定存在GIT信息泄露,用GitHack扫描
成功clone,用git stash list列出Git栈内的所有备份,可以通过备份来决定从哪里进行修复
用git stash pop弹出最后入栈的备份,也就是最近的文件
说是被删除,ls -a访问,查看底下的目录
查看到之后用cat查看文件
index
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区
打开环境还是先进行后台的扫描(其实发现在做一些页面提示不明显 的题目的时候,可以先用扫描工具进行扫描来获取一些信息)
存在git泄露,用GitHcak扫描
用git log查看历史记录
用git show查看
注意:GitHack是在python2的环境下运行的,dirsearch是在python3环境下运行的,在使用命令使用工具时,最好是写明是python2还是python3,特别是kali中,集成了python2和python3,如果不知名python2还是python3,可能会报错