答题前准备工具
-
文件名:Git-2.37.2.2-64-bit,安装后环境变量添加安装目录下的bin文件,cmd输入sh可激活,
-
windows下:cmd输入python -m pip install -i https://pypi.org/simple/ GitHacker安装githacker(默认到python目录下),然后pip install GitHacker,使用方法:githacker --url http://127.0.0.1/.git/ --output-folder result(结果输出到cmd目录下的result文件夹)
-
linux下: git clone https://github.com/maurosoria/dirsearch.git ,使用:dirsearch -u xxx(需在root下)
-
linux下:git clone https://github.com/kost/dvcs-ripper.git使用:(在安装目录下打开终端)(需在root下否则无法成功下载文件)
./rip-svn.pl -v -u http://challenge-1b029193f23181c2.sandbox.ctfhub.com:10800/.svn/ ./rip-hg.pl -v -u http://challenge-5555a3d4bbef123d.sandbox.ctfhub.com:10800/.hg/
git
- 打开:仓库文件夹右键git bash here(如果在.git文件夹中打开命令窗口会导致部分命令无法使用,且报错:fatal: This operation must be run in a work tree)
- 工作区与版本库:工作区就是我们的电脑上的git初始化文件夹。版本库就是我们工作区中的隐藏目录.git文件夹。版本库中分为两个部分:stage(index)暂存区和master
- 提交是指将暂存区的文件提交到master分支
- HEAD指的就是 .git/HEAD 文件,它存储着当前working directory所处的某次提交日志,refs目录下存储的是仓库和tags,每个仓库下又有分支,每个tags下又有tag,一个tag对应的某次提交日志。
- git命令:
- git log查看 git 的提交日志列表,包括提交对象(commit)的完整哈希字串,提交者信息)(author)(作者的名字和电子邮件地址)提交时间(date)和提交说明
- git show默认显示的是HEAD日志的具体内容,如想显示某个提交信息的具体内容,那么在git show后带上某个提交的hash值即可
- git diff是比较工作区与暂存区文件的区别,如果没有区别会输出文件内容(常利用此获得flag),有区别则输出双方的内容
信息泄露wp
目录遍历
- 把文件夹全打开一遍找到flag
phpinfo
- ctrl+f搜索flag
备份文件下载
网站源码
-
给出常用文件名与后缀,组合测试文件是否存在,以下为py脚本实现
-
查得www.zip存在,下载后浏览器打开flag.txt
import requests
url='http://challenge-957755a16dfb0fc3.sandbox.ctfhub.com:10800/'
names=["web","website","backup","back","www","wwwroot","temp"]
houzhuis=['rar','zip','gz','tar.gz']
name=""
houzhui=""
for name in names:
for houzhui in houzhuis:
result=requests.get(url+name+"."+houzhui).status_code
print(name+"."+houzhui+str(result))
bak文件
- 提示flag在index.php中,尝试下载index.php.bak,打开得到flag
vim缓存
- 同上,下载index.php.swp,打开得到flag
.DS_Store:
- 地址后加/.DS_Store下载文件,记事本打开发现提示,访问提示文件得到flag
git泄露
log
- githacker --url http://127.0.0.1/.git/ --output-folder result,下载文件夹右键git bash here,git show命令得到flag
stash
- githacker --url http://challenge-ece3a46093a6fb7d.sandbox.ctfhub.com:10800/.git/ --output-folder result,
下载文件夹右键git bash here,edit打开stash文件得到stash的hash,git diff hash得到flag
svn
- linux中在dvcs-ripper安装目录下打开终端,./rip-svn.pl -v -u http://challenge-1b029193f23181c2.sandbox.ctfhub.com:10800/.svn/,打开.svn文件夹,打开pristine(原本的)文件夹,记事本打开即可
hg
- linux中在dvcs-ripper安装目录下打开终端,./rip-hg.pl -v -u http://challenge-5555a3d4bbef123d.sandbox.ctfhub.com:10800/.hg/,打开.hg文件夹,记事本打开fncache发现有flag.txt,浏览器打开即可