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
1.1.3 Cookie
使用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 | python |
在下载下来的源码中找到flag
2.1.2 LOG
考点是
- git 泄露
- 查看历史记录:git log
- 切换版本: git reset 版本hash
- 对比两次提交 : git diff
解题
使用dirb进行扫描,发现存在.git目录,
使用githack工具将项目克隆到本地
工具地址:https://github.com/BugScanTeam/GitHack
注:这个有个坑,我一开始使用的
lijiejie
的GitHack
,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
另种解法
直接到stash目录下查看hash
然后使用git diff命令对比hash,和第一个LOG的做法思路一样
2.1.4 git泄露总结
漏洞描述:
git是一套内容寻址文件系统,当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
漏洞风险
泄漏Web程序源代码,尤其是生产环境中的Web源代码是非常严重的,首先源代码中大概率包含了连接数据库的用户密码等敏感信息,其次非开源的商业代码可能就这样被他人窃取,再者有的站长可能为了方便管理留有Webshell之类的后门
漏洞修复
- 删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问、
- 增加防火墙规则
.git文件夹分析
- hooks:存放一些sheel的地方
- info:存放仓库的信息
- logs:存放仓库的多次提交信息
- object:存放所有git对象的地方
- refs:存放提交hash的地方
- config: github的配置信息
- description:仓库的描述信息,主要给gitweb等git托管系统使用
- HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
- ORIG_HEAD:
git命令学习:传送门
githack工具原理
它能解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码。
2.1.5 参考连接
https://writeup.ctfhub.com/Skill/Web/%E4%BF%A1%E6%81%AF%E6%B3%84%E9%9C%B2/Git/83dcefb7.html
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
###