CTFHUB练习writeup

0x00 前言

CTF是啥我这里就不介绍了,最近在网上看到了一个CTFHUB的练习平台,感觉还挺好玩的,虽然靶场的环境还有问题,不过可以刷刷现在已有的题目玩玩。

网址:https://www.ctfhub.com/#/index

0x01 web

1.1 HTTP协议

1.1.1 请求方式

使用burp抓包,然后发送到repeater模块,将请求方式改为CTFHUB点击GO即可返回flag

1.1.2 302跳转

使用burp抓包,然后发送到repeater模块,go一下,在请求的返回包中会发现一串数字,添加到request请求url路径的index.html前面在go一下,获得flag

使用burp抓包,然后发送到repeater模块,修改cookie的值,将admin=0改为admin=1,go一下,获得flag

1.1.4 基础认证

开启环境,题目情况如下

下载附件,里面是密码TOP100

访问连接,发现是类似Tomcat的认证访问,所以使用burp抓包看看

burp抓包后发送到repeater模块go一下返回401未授权

将数据包发送到intruder模块

设置payload类型

设置第一个位置的payload

设置第二个位置的payload

设置第三个位置的payload

因为爆破的时候会将字符URL编码了,所以需要将那个选项去掉

开始爆破

1.1.5响应包源码

打开链接发现是贪吃蛇界面,而题目考的是响应包源代码,想一下一般响应包都是网页源代码,所以这里是不是找查看源代码尼?

右击查看源代码,发现flag果然以注释的形式出现在哎源代码中。

0x02 信息泄露

2.1 git泄露

2.1.1 Index

打开链接

目录扫描

1
2
python
GitHack.py http://challenge-86d4bdd4069b1836.sandbox.ctfhub.com:10080/.git/

在下载下来的源码中找到flag

2.1.2 LOG

考点是

  • git 泄露
  • 查看历史记录:git log
  • 切换版本: git reset 版本hash
  • 对比两次提交 : git diff

解题

使用dirb进行扫描,发现存在.git目录,

使用githack工具将项目克隆到本地

工具地址:https://github.com/BugScanTeam/GitHack

注:这个有个坑,我一开始使用的lijiejieGitHack,git下来的源码没有.git文件夹,所以git log查看版本等命令都用不了,一开始我以为是环境出了问题,后来看到官方的writeup中使用的工具不是lijiejie的,所以在github中找了BugScanTeam的工具进行使用

1.克隆到本地

2.查看提交日志信息

进入克隆的代码目录中,在此处打开cmd命令行,输入git log查看提交的日志情况,这里使用git bash打开也行。

3.版本对比

观察发现一共有三次提交,分别是init, add flag 和remove flag.

直接与add flag这次提交进行对比,命令是:git diff 2bba2d

注:abba2d是add flag这次提交的hash,会变化的。为什么,我也不知道(手动狗头)

4.拿flag

另一种官方解法

2.1.3 Stash

一样的套路,先探测是否存在.git目录,然后使用gitHack工具拉取代码

1.查看版本提交情况

发现和LOG一样,

2.版本对比一下

发下有个txt文件,那flag会不会在这个txt文件里面尼?

3.恢复文件

输入git stash pop恢复这个文件

4.拿flag

dir查看文件目录,发现txt文件恢复成功

使用notepad命令打开txt文件,拿到flag

1583137972616

另种解法

直接到stash目录下查看hash

然后使用git diff命令对比hash,和第一个LOG的做法思路一样

2.1.4 git泄露总结

漏洞描述:

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

漏洞风险

泄漏Web程序源代码,尤其是生产环境中的Web源代码是非常严重的,首先源代码中大概率包含了连接数据库的用户密码等敏感信息,其次非开源的商业代码可能就这样被他人窃取,再者有的站长可能为了方便管理留有Webshell之类的后门

漏洞修复

  1. 删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问、
  2. 增加防火墙规则

.git文件夹分析

  1. hooks:存放一些sheel的地方
  2. info:存放仓库的信息
  3. logs:存放仓库的多次提交信息
  4. object:存放所有git对象的地方
  5. refs:存放提交hash的地方
  6. config: github的配置信息
  7. description:仓库的描述信息,主要给gitweb等git托管系统使用
  8. HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
  9. ORIG_HEAD:

git命令学习:传送门

githack工具原理

它能解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码。

2.1.5 参考连接

  1. https://blog.csdn.net/qq_43504939/article/details/95807716

  2. https://writeup.ctfhub.com/Skill/Web/%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2/Git/83dcefb7.html

  3. https://writeup.ctfhub.com/Skill/Web/%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2/Git/83dcefb9.html

2.2 .svn泄露

2.2.3 .svn泄露总结

漏洞描述

SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利
用.svn/entries文件,获取到服务器源码

0x03

0x04

###


文章作者: madcoding
文章链接: https://www.mad-coding.cn/2020/03/02/CTFHUB练习writeup/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 madcoding’s blog
打赏
  • 微信
  • 支付宝

评论