CTF之旅(CTFHub技能树+详细Write up+已完结)(信息泄露)

CTFHub题目WriteUP地址汇总

本来不想分段的,但是后来发现要写的东西太多了,就写了个首页,汇总一下地址,大家见谅

首页地址

信息泄露

目录遍历

在这里插入图片描述

这个题目也是非常简单的,一开始看到题目中的目录遍历,我还以为要用dirsearch去挖,没想到直接把网站根目录权限开放给我们了,鼠标单击去找,没一会儿就找到了。
在这里插入图片描述

PHPINFO

看到0⭐难度,啥也不说了,直接Ctrl+F找CTFHub,然后就找到了。。
在这里插入图片描述

备份文件下载——网站源码

在这里插入图片描述

这道题目开始有点意思了,题目提示网站程序员可能为了备份网站数据在目录下面放备份源码,则会导致信息泄露,还告诉我们了一些常用备份域名,那么直接在cmd中打开我们的dirsearch对着网站目录开始扫(还不会用dirsearch的童鞋请戳这里,这个作者讲的也很好我就不多赘述)我在cmd中输入了这样一行命令:

python dirsearch.py -u http://challenge-51c65819981ea505.sandbox.ctfhub.com:10800/ -e tar tar.gz zip rar

(照道理来说在-e后加上文件后缀名就只会扫描对应文件名的文件,但是它还是把所有文件都给我扫了出来,我也不知道为什么,在座的大佬们可以麻烦解释一下)在这里插入图片描述
扫完后Ctrl+F找状态码为200的,可以找到一个压缩包:在这里插入图片描述
把它添加到url中回车发现网站下载下来了一个压缩包,打开后发现里面有一个flag_855726084.txt,兴奋的打开它却发现没有flag。。。
失望的我再次回到cmd中查找状态码为200的,却没有其他发现,那么突破口一定在这个flag_855726084.txt上。我又尝试在网页上访问它(在网页原url后加上/后再加上flag_855726084.txt即可),flag出来了!!
在这里插入图片描述
个人分析:为什么这个.txt文件直接打开不会显示flag但是到了网站上后就会显示呢?个人理解是服务器后期做了处理,具体我也不太确定,有大佬懂的欢迎在下方评论区讲讲看法哈。

备份文件下载——bak文件

题目提示:当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
在这里插入图片描述
根据目录进入index.php后,页面并没有发生改变,那么只能继续用dirsearch扫了。(之前有详细讲过使用教程,这里就简单讲述)
将cmd切换至dirsearch的目录下输入:
python dirsearch.py -u http://challenge-c6d1df62794cc0d9.sandbox.ctfhub.com:10800/ -e *
找状态码为200的
在这里插入图片描述
找到了我们要找的.bak文件,把它添加到url的目录下,下载出来,用记事本打开即可,flag就在其中。
在这里插入图片描述

备份文件下载——vim缓存

此题目需要用到Linux和vim,请没有安装的童鞋参考下面的链接:
安装虚拟机VWmare
安装Linux系统(这里本人选择ubuntu18.4.5)
ubuntu打开命令行(终端)
ubuntu安装vim

还可能需要安装一些传文件的小工具以及一些快捷命令:
ubuntu在终端下复制粘贴的方法(熟悉ubuntu的不用看)
安装VMware Tools

因为本人这台电脑还没装过,所以这个地方断了我两天(手动悲伤)

那么回归正题,首先根据题目提示还是用我们的dirsearch去挖,然后去找状态码为200的文件。(之前的题目中有过详细分析步骤,这里就不多赘述)
在这里插入图片描述
在这里插入图片描述
加入网站后缀名后却出现404,这是为什么呢?
Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MTU2MzYwMw==,size_16,color_FFFFFF,t_70)

找了网上的资料好久后,发现可以在前面加一个".",就可以把文件下载下来了,具体原理我也不太懂,有大佬懂的话可以在评论区解释下。(小科普:浏览器遇到url对应的文件格式无法解析的时候就会下载下来)
在这里插入图片描述

如果你之前安装了VMware Tools的话,可以直接将文件拖到打开的虚拟机窗口中(这边建议拖到Home的文件夹中,因为ubuntu的终端默认打开i路径是Home,拖到其他文件夹也没关系,你可以用cd命令进入),或者你也可以通过共享文件夹的方式实现连接两台电脑。
在这里插入图片描述
按下Ctrl+Alt+T进入终端:
在这里插入图片描述
输入:vim -r index.php.swp (Tips:输入ls可以查看你要读取的文件是否在此目录下)
在这里插入图片描述

回车再回车:
在这里插入图片描述
flag出来了:
在这里插入图片描述

备份文件下载——.DS_Store

在这里插入图片描述在这里插入图片描述

根据题目提示我们需要通过.DS_Store上查看列表中的文件,但是在哪里输入这个命令呢?
我试着在console控制台中输入,没有用,又试着在url后加上/.DS_Store,没想到成功了。
在这里插入图片描述
在这里插入图片描述
下面为本人的错误心路历程,这边只是记录一下,想看正确解题思路的童鞋们请跳过

下载下来了然后如何打开呢?我百度了下如何打开DS_Store文件,百度上说用记事本即可打开,
我试着打开后发现如下的内容:

在这里插入图片描述

这里一串字符是啥意思呢?我琢磨了半天,看看它都是十六进制的数,是ASCLL编码吧,也不是,因为换算出来有190多的
(注:ASCLL码值一般为0-127)又不像是base64编码,反正各种常用的解码方法都试了一边,都不管用,我还把它
拷贝进url中也是不管用。最后我也是没办法才搜了下WP。。得到了正确解法。

本人的错误心路历程已结束,想看正确解题思路的童鞋们请空降此处

方法一:
我搜到的WP给出的解法是在Linux中打开,于是打开我们的虚拟机,将刚刚下载好的文件拖进虚拟机(此处需要VMware Tools,上面已经给出详细教程这里就不多赘述)
在这里插入图片描述
打开命令行,输入:cat DS_Store
在这里插入图片描述
又是看到了这个奇怪的字符串,但是再把它加到url里之后却出现了flag!(要把.txt后面的”noteustr“去掉)
在这里插入图片描述
这边有Linux的cat命令的详细教学,讲的很好我也不多说了。
还有如果不想一个字一个字打进去的话,之前安装过VMware Tools的童鞋可以直接在虚拟机中Ctrl+C复制再到主机Ctrl+V粘贴,肥肠方便!(VMware Tools可真是个好东西,建议没有安装的同学还是安装下)

错误经历
我还尝试用上道题的vim去打开,但发现却是这样的:
在这里插入图片描述
我也去网上搜了一下vim和cat显示文件的区别,这个是我看到的写的最详细的了,但是我还是没有得出答案,我自己的一个理解是cat会把文件中那些为NULL或者为空格的字符去除后再显示,而vim不会,(也可能是他们解码方式的不同,可以参考下这里,有懂的大佬请在评论区发言)

方法二:
我后来才发现,其实把记事本的拖动条往右拖,就可以看到之前没有看到的一些字符,和之前看到的字符拼起来,把空格去掉后和在Linux下用cat解析出来的方式是一样的。。
在这里插入图片描述
在这里插入图片描述

我靠,浪费我一个多小时,本题到此结束。

Git泄露——Log

做此题需要安装的东西:
Git:这边我是选择在Linux的Ubuntu下安装的,因为我之前在Windows上试过,它不起作用。。(我也不知道为什么)
GitHack:GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。
Ubuntu下载Python2.7:GitHack只能在Python2的环境下运行
在这里插入图片描述
那么不用说还是用dirsearch去挖一下,发现了这些:
在这里插入图片描述

说明有git泄露(其实不用扫也知道。。题目就是让你找git泄露(doge))
打开虚拟机,打开终端,进入下载好的GitHack文件夹,写入命令:
python GitHack.py URL/.git
即可扫描并下载通过.git泄露的文件
在这里插入图片描述
(之前我在Windows下面搞,这个界面一直出不来)
完成后会出现一个dist文件夹,进入后发现有一个以你刚刚扫描网站名字命名的文件夹,再进入后输入git log来查看历史,会出现如图:(一定要进入最后一个文件夹,要不然查看不到正确的历史)
在这里插入图片描述
说明我们现在看到的版本是移除过flag的,那么接下来又两种方法。
一:输入log show
这个命令可以用于显示提交日志的相关信息,我的理解是这个命令可以显示和之前版本相比做了哪些改动,详细请看这里
在这里插入图片描述
二:输入git reset --hard 4cad902631b270216726bf78b0a3f34a1db8c082(-hard后面输入add flag上面的黄色字体的版本号)
这个命令可以切换为之前的版本,输入完成后最后一个文件夹下会多出一个.txt文件,打开后就有flag。

在这里插入图片描述
在这里插入图片描述
本题结束。

Git泄露——Stash

首先查看题目:
在这里插入图片描述
还是老样子,丢到dirsearch中去扫,发现有git泄露。
在这里插入图片描述
下面几步操作类似上一题,这里不多赘述。
打开虚拟机终端,进入GitHack.py对应目录,输入命令
python GitHack.py URL/.git
在这里插入图片描述
之后会生成一个dist,cd进入dist再cd进入对应url的那个文件夹,输入 git log命令,会生成以往git的日志,输入 git show命令,会显示和之前版本不同的地方,按照上一道题的套路,我们这时候已经可以得到flag了,但是这是新的一题呀,当然不会如此简单(手动狗头)
在这里插入图片描述

在这里插入图片描述
这里我建议那些还没做出来题目、时间还充足的小伙伴们看一下这两个网站里的知识,本人自己一开始也不会,就是看了这两个网站上的知识才学会了的,最好有一个自己思考的过程,况且这题在CTF的各种变态的题中也不算难:
网址1
网址2
(同时感谢两网站的作者!)

好了相信大家都已经自己思考过了,下面开始wp:首先进入之前git log,输入git reset --hard 43fe4413953eabf75dbf95f17105ba93a1d51cc1命令(–hard后面换成你自己add flag上面黄色的版本号)。我们可以通过查询得知,命令:git stash list 用于查看stash了哪些存储,先输入康康:
在这里插入图片描述
可以看到stash中就存储了一个flag,那么如何进入呢?
搜索得,命令:git stash show -p :用于显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
那么,输入康康:
在这里插入图片描述
flag出来了!

Git泄露——Index

emm…这题怎么说呢,简单的让我有点懵逼,我甚至觉得它可以放在Git泄露中第一题。
按照上上一题的步骤来即可,先用dirresearch扫,发现有git泄露:
在这里插入图片描述
然后打开虚拟机的终端,进入Githack对应目录,输入命令
python GitHack.py URL/.git(注:这里不要忘了在URL后面加/.git!!!我就是忘了然后找了好久bug)
在这里插入图片描述
然后进入对应url的文件夹,里面就有flag
在这里插入图片描述
说实话简单的有点离谱。。(相比上面两题)



SVN泄露

这里有一些关于SVN的介绍:
  Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
在这里插入图片描述
说实话这道题我也是搞了好久,也不知道是为什么,就是和网上的WP不一样。。
如果你遇到了和我一样的问题,请查看这里。这个up讲的很好。
首先这道题我是不会做的(知识盲区嘛)然后我就先大概看了一下别人的WP中需要下载什么,这里是要下载的东西:

Git:这边建议是选择在Linux下安装
dvcs-ripper:终端中输入git clone https://github.com/kost/dvcs-ripper
在这里插入图片描述

下载好后进入对应文件夹,在终端中输入:
rip-svn.pl -u http://challenge-f1f96d75b106e047.sandbox.ctfhub.com:10080/.svn/
./rip-svn.pl -u http://challenge-f1f96d75b106e047.sandbox.ctfhub.com:10080/.svn/
(这边网上两个版本都有,但我试了一下,两个版本好像都不行)
在这里插入图片描述
在这里插入图片描述
这俩报错我一脸懵逼,我也是网上找了好久,也是终于找到一个可以解决的办法。
先在命令行中输入以下4条命令:
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl 1ibio-all-lwp-perl

sudo apt-get install libparallel-forkmanager-perl libredis-perl libalgorithm-combinatorics-perl

sudo apt-get install cvs subversion git bzr mercurial
(虽然我并不知道他们是什么的安装命令)

即可看到对应结果:
在这里插入图片描述
再输入ls -al,查看目录中有啥:
在这里插入图片描述
进入目录的.svn(输入cd .svn

tree .svn的命令查看.svn中的历史:
在这里插入图片描述

再一个一个cd进入对应的版本查看其代码:(比如说上图就是97和bf,把他们换成如下图操作就可以了)
在这里插入图片描述
即可得到flag

注:本人应该当时做完这道题后电脑就关机了,所以没能保留到自己的图片,从网上扣了一点,请大家见谅。
这些作者都做的很不错,也非常感谢!
下面是引用网址:
https://www.cnblogs.com/anweilx/p/12504790.html
https://blog.csdn.net/qq_41497476/article/details/106994759

HG泄露

可能需要用到的插件:
dvcs-ripper(Ubuntu安装)

在这里插入图片描述

先用dirsearch找,很奇怪的是并没有找到响应码为200的.hg文件。。。

那也没办法,还是使用dvcs-ripper工具进行.hg破解吧。
打开虚拟机,进入对应目录(和之前的.svn泄露类似,我这里就讲的简单一点)

输入命令./rip-hg.pl -v -u URL/.hg/

在这里插入图片描述
使用ls -al命令查看当前目录下所有文件(包括一些隐藏文件),再使用cd .hg命令进入.hg文件夹并再次查看.hg目录下的文件
在这里插入图片描述
使用cat XXX.txt可以查看文件的内容。
比如查看last-message.txt
在这里插入图片描述

这里有一些常用的文件查看命令:

1,cat :由第一行开始显示文件内容;

2,tac:从最后一行开始显示,可以看出tac与cat字母顺序相反;

3,nl:显示的时候输出行号;

4,more:一页一页的显示文件内容;

5,less与more类似,但它可以向前翻页;

6,head:只看前几行;

7,tail:只看最后几行;

8,od:以二进制的方式读取文件;

9,vi/vim:文本编辑器,也可以打开文件查看内容,这个是使用最为广泛的工具,学习还是稍微复杂的,可以参考《Linux就该这么学》书籍中的学习章节~。

那么在这个文件夹下一个一个找,我们会发现在store/fncache的内容中发现flag文件信息:
在这里插入图片描述
但是我们查看data文件夹下发现并没有啥东西。
结合题目提示,不太好使的情况下, 试着手工解决。
在浏览器里输入这个flag文件

flag出来了!
在这里插入图片描述

(完结!)

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值