当前位置:   article > 正文

git泄露——dirsearch&githack使用_git dirsearch

git dirsearch

一,Git泄露原理。

大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。通常情况下下载 .git 文件中会存在网页的快照

【快照:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品】

Git有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)

hook:存放一些sheel的地方。

info:存放仓库的信息

object:存放所有git对象的地方

refs:存放提交hash的地方

config:github的配置信息

description:仓库的描述信息,主要给gitweb等git托管系统使用

HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值

二,dirsearch的使用。

 (1)原理:

过发送HTTP请求来尝试访问可能存在的路径,从而找到不列在网站目录页面上的隐藏资源。

(2)特点:

1.多线程:Dirsearch 采用多线程方式进行目录扫描,充分利用系统资源提高扫描效率。

2.字典支持:它支持使用自定义字典文件来进行目录爆破,你可以使用自己的字典文件或使用内置的常用字典。(注:字典必须是文本文件)

3.支持多种形式的网页(asp,php)

4.支持HTTP代理

5.启发式检测无效的网页

6.指定扩展名:你可以选择限制扫描的文件扩展名范围,以便更加精确地进行目录扫描。

7.进度追踪:Dirsearch 提供实时进度追踪,你可以看到当前扫描的进度和已发现的目录和文件。

8.结果输出:完成扫描后,Dirsearch 会生成详细的扫描报告(纯文本,JSON),展示已发现的隐藏目录和文件。

(3)选项说明:

选项 含义

--version 显示dirsearch的版本

-h --help 帮助提示
-u       指定url
-e 语言   指定网站语言,一般用-e*即所有语言

-i 保留响应状态码(不同状态码用逗号分隔,可指定范围,如-i 200,300-400)

-x 排除响应状态码(不同状态码用逗号分隔,可指定范围,如-x 400,400-500)

-w 指定字典

-r 递归目录(即可扫描新扫描出的目录下的目录)

-random-agents 使用随机User-Agent

更多选项使用说明用以下两个命令都可以查看

命令1:dirsearch --help
命令2:man dirsearch

(4)命令

python3 dirsearch.py -e php,txt,zip -u https://target     //简单的查看网址目录和文件

python3 dirsearch.py -e php,txt,zip -u https://target -w db/dicc.txt        //使用文件拓展名为php,txt,zip的字典扫描目标url

python3 dirsearch.py -e php,txt,zip -u https://target -w db/dicc.txt --recursive -R 2

python dirsearch.py -u http://xxxx        //日常使用

(5)常用命令

python dirsearch.py -u http://xxxx -r        //递归扫描,不过容易被检测

python dirsearch.py -u http://xxxx -r -t 30        //线程控制请求速率

python dirsearch.py -u http://xxxx -r -t 30 --proxy 127.0.0.1:8080        //使用代理

(6)结果:

1.只保留响应状态码为200-300的结果,即扫描出的该网站存在的敏感文件和目录

2.排除响应状态码为403的结果,即不显示该网站不存在的敏感文件和目录。

(7)注意:

注意:dirsearch的命令必须在C:\Python3\Dirsearch\dirsearch-master目录下运行

三,dirsearch示例。

四,githack的使用。

1.基本语句。

python2  GitHack.py http://challenge-efb678740fb6553d.sandbox.ctfhub.com:10800/.git

2.git log简单理解。

可以让我们查看提交commit history以及默认会输出commit hash, author, date, commit message.

3.git log提供的参数。

参考:git log 详解-CSDN博客

五,githack示例。

(1)log(ctfhub)

1.打开环境,,进入kali,进到GitHack目录下,使用命令python2  GitHack.py http://challenge-cf13f731ae1a87e2.sandbox.ctfhub.com:10800/.git

2.在运行结果的最后一行找到相关文件储存的位置,并打开。

3.输入git log——查看一下 Git 仓库情况,我们已经成功恢复出 Git 仓库的日志,根据日志我们知道,最新的一次commit已经把 flag 删除了。

4.我们需要切换到的第二个 commit ,即add flag这个 commit ,之后我们直接 ls 即可看到 flag ,读取即可。

  • 第一种是直接查看add flag和remove flag这两个版本的不同,git diff可以实现(git diff e626f5b962aed348671c18c107e9e4ea54e354c7)
  • 第二种是回退到之前的版本,git reset可以实现(回退版本,得到一个txt文件,打开得到flag)

(2)bugku——source

1.打开环境,产看源码,有一个类似flag的东西,填了以后发现没有那么简单。

2.是git泄露题,用githack——python2  GitHack.py http://114.67.175.224:19650 /.git

3.得到一个flag.txt的文件,打开看后,并不是我们想要的答案

4.最后尝试wget,我们直接给网站下载下来wget -r http://114.67.175.224:19650 /.git

5.得到一大堆文件,在40c6d51中找到flag

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/683142
推荐阅读
相关标签
  

闽ICP备14008679号