GitHack和SvnHack和DS_Store

AffettoIris 2023-11-4 2,334 11/4

 

GitHack.Py

GitHack是一个用python2写的.git泄露利用脚本,速度快,默认20个工作线程,通过泄露的.git文件夹下的文件,重建还原项目源代码

脚本的工作原理

  • 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )

  • 去.git/objects/ 文件夹下下载对应的文件

  • zlib解压文件,按原始的目录结构写入源代码

可能的改进

  • 存在文件被gc打包到git\objects\pack的情况,稍后可测试下看能否直接获取并解压这个文件,还原源代码

使用

python Githack.py http://www.test.com/.git/

用python2去使用脚本,因为基于python2开发的。

我没得演示,因为我的服务器保护.git文件。执行脚本会出现如下404。

GitHack和SvnHack和DS_Store

GitHack和SvnHack和DS_Store

这种情况可能是真的不存在该.git目录,也可能是存在但遭到防护了。

我的网站域名是ink0.cn,我在网站根目录下放置了两个文件夹css和.git,浏览器访问http://ink0.cn/.git访问显示404,不存在文件夹,浏览器访问http://ink0.cn/css访问显示403,存在文件夹。如果我把.git改名为其他如git,此时访问http://ink0.cn/git则会显示403。这是为什么?

这是因为.git文件夹通常被用作版本控制工具(如Git)的存储库文件夹,它包含了项目的版本历史和其他相关信息。为了安全起见,防范GitHack脚本攻击,许多Web服务器会对这些文件夹进行保护,防止未经授权的访问。所以,当你尝试访问http://ink0.cn/.git时,服务器会返回404错误,表示文件夹不存在。

该防护的服务提供商可能是Apache、Nginx、IIS,也可能是安全狗,我电脑上也没安装其他的防护啊。

SvnHack.Py

使用

官网,也是用python2开发的,要用python2去执行脚本。用起来几乎和GitHack.py一样,用于获取网站源码。

使用前请访问http://ink0.cn/.svn/entries,注意事项如404不行,403或200状态码可以,和GitHack.py一样。

GitHack和SvnHack和DS_Store

GitHack和SvnHack和DS_Store

注意到--download可以下载站点全部源码,要-u指定目标URL。最终命令是python ./SvnHack.py -u https://ink0.cn/.svn/entries --download

不常用命令

Options:

-h, --help show this help message and exit

-u Url, --url=Url add a svn url.

-d Dic, --dic=Dic list a directory.

-r READFILE, --read=READFILE read a file.

--download download the entire station. 列取目录:

根目录       python SvnHack.py -u http://x.x.x.x/.svn/entries  
指定目录     python SvnHack.py -u http://x.x.x.x/.svn/entries  -d scripts

读源码:

指定文件    python SvnHack.py -u http://x.x.x.x/.svn/entries  -d scripts -r  upd.js

 

DS_Store

.DS_Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。如果将.DS Store.上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

工具ds_store_exp.py,官网,用python2开发的工具,和GItHack一样。

  • 漏洞POC:访问https://ink0.cn/.DS_Store,若访问后出现下载.DS_Store文件:

    GitHack和SvnHack和DS_Store

    那么存在可利用的漏洞。

  • 安装脚本所需依赖pip install ds-store requests

  • python ds_store_exp.py https://ink0.cn/.DS_Store

    GitHack和SvnHack和DS_Store

防护方法:

  • 不要把.DS_Store文件部署到云服务器上。

  • 若一定要部署在云服务器上,使用技术手段限制权限,让别人访问该目录为404

- THE END -

AffettoIris

11月04日23:23

最后修改:2023年11月4日
1

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

共有 0 条评论