zoukankan      html  css  js  c++  java
  • 记一次对ctf试题中对git文件泄露的漏洞的挖掘

    拿到题,先f12查看代码

     

    发现情况直接进行访问

    最后试了发现flag.js可以访问  服务器返回了如下图所示的乱码

     很显然有可能是git泄露  话不多说,直接利用https://github.com/gakki429/Git_Extract这个工具下载泄露的文件

     在这要强调一下  我在这入坑了  本题考查的是对git/logs/HEAD文件的利用,而githack并没有对其中的hash提取,因此遗漏了部分的object,要用Git_Extract来实现

     用diff对flag.js和flag.js.04bb09进行对比,发现答案flag  继续对比下去,找到不同  那就是答案

     最终flag{82efc37f1cd5d4636ea7cadcd5a814a2}

    总结:在powershell中使用GitHack的命令GitHack.py http://XXXXXXXXXXX/.git/

    当前大量开发人员使用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打包到gitobjectspack的情况,稍后可测试下看能否直接获取并解压这个文件,还原源代码

    用法示例

    GitHack.py http://xxxxxxxx/.git/

    执行中截图:

    执行结果:

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

  • 相关阅读:
    JAVA文件夹上传解决方案
    PHP文件夹上传解决方案
    JSP文件夹上传解决方案
    Web文件夹上传解决方案
    SpringCloud大文件上传解决方案
    SpringBoot大文件上传解决方案
    SpringMVC大文件上传解决方案
    局域网大文件上传解决方案
    香烟过滤嘴模型
    hdu 1010 Tempter of the Bone 奇偶剪枝
  • 原文地址:https://www.cnblogs.com/lzkalislw/p/14097681.html
Copyright © 2011-2022 走看看