.git泄露漏洞与GitHack工具

AffettoIris 2023-4-27 2,488 4/27

扩展

  • kali怎么修改root密码

    登录kali用户,输入sudo passwd root即可

  • BugScanTeam 一个github仓库,存放有

    1. GitHack git 泄漏利用工具,可还原历史版本

    2. DNSLog DNSLog 是一款监控 DNS 解析记录和 HTTP 访问记录的工具。

    3. hackhttp Hackhttp is an HTTP library, written in Python.

    4. 等渗透工具,其中收藏量高的就这三个。

  • kali、ubuntu是基于debian系统。centos是基于redhat系统。

  • git安装命令

  • gzip是GNUzip的缩写,最早用于UNIX系统的文件压缩。gzip压缩比率在3到10倍左右,可以大大节省服务器的网络带宽。

  • 题目给了我一个这样的网址http://challenge-2dfd63d17e607724.sandbox.ctfhub.com:10800/,由于题目是git泄露漏洞,所以我本能地去python2 GitHack.py http://challenge-2dfd63d17e607724.sandbox.ctfhub.com:10800/.git ,实际入侵中是有一个网址,真不知道服务器有啥内容,就先用dirsearch扫,发现git文件后考虑能否用GitHack尝试git文件泄露漏洞

  • GitHack的使用

    python GitHack.py http://www.example.com/.git/  # 截至2023/04/28,脚本得用python2

    还原后的文件在 dist/ 目录下,例如dist/www.example.com,而dist/www.example.com目录下又有以下文件,其中.git是我们需要的,有了它我们就能追寻开发者的版本更替路线,其他的都是开发者当时的工作目录下的工作文件。

    .git泄露漏洞与GitHack工具

    工作流程

    1. 尝试获取 packs克隆

    2. 尝试目录遍历克隆

    3. 尝试从缓存文件(index)、commit记录中恢复

WP

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

进行至此,我们已经拿到了开发者当时的工作目录下的.git,我们利用此.git看看能获取啥信息,例如git log:

.git泄露漏洞与GitHack工具

好了,看来我们需要的flag在版本号6ab93a处,题目没有直接git reset --hard 6ab93a然后逐行搜寻flag,而是考虑到像我这种工程师,喜欢开发时写密码,上线时把密码替换成×××××,也就是说,变动的地方很可能是某些重要信息如密码。所以

git diff 6ab93a

.git泄露漏洞与GitHack工具

发现flag

Git Diff的知识

参见git diff简介

大致是说,是查看 workspace(工作区) 和 local repository(本地仓库)中指定版本 差别的,这个命令解决了工程师git status时只能看到modified: src/test.txt,而不知道该文件改动了啥的需求。

例如如果显示下图:

.git泄露漏洞与GitHack工具

具体的变化就一目了然了,git diff告诉我们 删除了红色行 ,新增了 绿色 行的代码。这正是我们的修改。

git diff:是查看 workspace(工作区) 与 index(暂存区) 的差别的。 
git diff --cached:是查看 index(暂存区) 与 local repositorty(本地仓库) 的差别的。 
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)
git diff 版本号:我个人啊,估计就是查看 workspace(工作区) 和 local repository(本地仓库)中指定版本 差别的
- THE END -

AffettoIris

10月16日15:33

最后修改:2023年10月16日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论