知乎上一个对git、git bash、git shell解释的文章
简单来说我们在写代码时会不断更新,每次更新的成果都是一个版本,那Git就是用来管理这些不同版本的。git属于unix终端环境,像linux,mac都是自带的,但windows并不兼容,而git bash就是模拟出来的适合windows的一个git终端。git shell就像xshell这些软件一样,能通过ssh与git服务器连接
执行git-upload-archive --help(或git-receive-pack --help),将会进入一个交互式的man页面(可用来查指令,如man ls),man又调用了less命令,而less命令有一个特性,就是其支持一些交互式的方法。比如在less页面中,按shift+e可以打开Examine功能,通过这个功能可以读取任意文件,如:输入!id就可以执行id这个命令(可在自己linux系统上试一试,less 任意文件,然后!+命令)。
漏洞复现首先在同目录下生成id_rsa私匙,如果是下载的vulhub应该会自带,在连接以前,需要先设置私钥的权限为0600:chmod 0600 id_rsa,否则连接可能失败chmod 权限参数
直接连接ssh服务
ssh -p 3322 -i id_rsa git@127.0.0.1
git-shell给拦截,返回错误fatal: unrecognized command ‘’,并且连接被关闭,这里使用–help技巧,连接目标并进入帮助页面:
ssh -p 3322 -i id_rsa -t git@127.0.0.1 "git-upload-archive '--help'"
官方文档感觉网上写的都挺详细的。



