GitHack:一个git泄露利用脚本

2015-04-29 +3 1144506人围观 ,发现 14 个不明物体 工具

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

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

GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码。

Git信息泄露的危害很大,渗透测试人员、攻击者,可直接从源码获取敏感配置信息(如:邮箱,数据库),也可以进一步审计代码,挖掘文件上传、SQL注射等安全漏洞。FreeBuf之前也有相关报道,点我围观

工作原理

1、解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
2、去.git/objects/ 文件夹下下载对应的文件
3、zlib解压文件,按原始的目录结构写入源代码

优点

速度快,默认20个工作线程
尽量还原所有的源代码,缺失的文件不影响脚本工作
脚本不需要执行额外的git命令,all you need is python
脚本无需浏览目录

可能的改进

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

用法示例

GitHack.py http://www.openssl.org/.git/

执行中截图:

执行结果:

获取代码:https://github.com/lijiejie/GitHack

参考资料

Git Index Formart

非常感谢 sbp 的 gin – a Git index file parser,脚本中使用了他的解析代码,为适用python 2.x和Windows作了细微的改动

*作者:exploit.py,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

这些评论亮了

  • @exploit 你这个GitHack在 debian运行提示Traceback (most recent call last):
    File "GitHack.py", line 13, in <module>
    from lib.parser import parse
    ImportError: No module named lib.parser

    window运行更是一堆报错,求解
    [+] Download and parse index file ...
    Traceback (most recent call last):
    File "GitHack.py", line 95, in <module>
    s = Scanner()
    File "GitHack.py", line 36, in __init__
    data = self._request_data(sys.argv[-1] + '/index')
    File "GitHack.py", line 50, in _request_data
    return urllib2.urlopen(request).read()
    File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
    File "/usr/lib/python2.7/urllib2.py", line 407, in open
    response = meth(req, response)
    File "/usr/lib/python2.7/urllib2.py", line 520, in http_response
    'http', request, response, code, msg, hdrs)
    File "/usr/lib/python2.7/urllib2.py", line 445, in error
    return self._call_chain(*args)
    File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain
    result = func(*args)
    File "/usr/lib/python2.7/urllib2.py", line 528, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    urllib2.HTTPError: HTTP Error 404: Not Found
    )38( 亮了
发表评论

已有 14 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

2 文章数 4 评论数

特别推荐

推荐关注

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php