今天CTFHub正式上线了,https://www.ctfhub.com/#/index,之前有看到这个平台,不过没在上面做题,技能树还是很新颖的,不足的是有的方向的题目还没有题目,CTF比赛时间显示也挺好的,这样就不用担心错过比赛了。

先做签到题,访问博客就可以拿到。

Web前置技能,

可以看到大部分题目都还没有补充完成。

HTTP协议第一题:请求方式

一般来说我们比较常用的是GET和POST方法

开启题目

可以看到是需要我们使用CTFHUB方法访问该网址,burpsuite里面修改请求方法好像只能修改成POST和GET,没有自定义修改的,所以我们使用Linux下面的curl命令命令行访问该网址,并自定义请求方法为CTFHUB

也可以在windows上下载curl命令,-v是详细信息 -X是指定请求方法

注意,访问的时候在网址后面不要忘记/index.php了,否则会提示不允许访问的

可以看到已经拿到flag了

第二题302跳转,使用burpsuite

点击进去之后可以看到有一个链接,下意识点击抓包

抓取之后repeater,可以看到flag出现了,同时相应状态码是302,证明是重定向了,但是burpsuite里面默认不重定向,直接就能拿到flag

第三题 cookie

cookie是我们访问网站的时候证明自己身份的凭证

想要抓到cookie可以用抓包工具或者F12,这里我还是使用burpsuite

可以看到告诉我们身份是gurst,但是admin才能获得flag

可以看到cookie里面admin=0,很容易我们能想到将admin改为1,

垂直越权漏洞,对于cookie的审查不够严格,获得flag

第四题你 基础认证

这道题比之前几道题要难一点点

首先是基本认证这个知识点,但是题目已经给出了相关链接,我们看一看:https://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81

可以看到这里是需要我们传递一个base64之后的用户名和密码 格式是 用户名:密码,然后将其base64加密,放在Basic之后

我们开启环境,

点击click之后

可以看到需要我们输入用户名和密码,并且可以知道用户名是admin,随便输一下可知输入错了之后会重复弹出该窗口让我们输入

当然题目还有一个附件,我们下载下来看

很明显是密码字典,所以可以猜到这道题的目的是让我们按照基础认证的加密方式即base64,爆破密码获取flag

于是写一个小脚本将密码和admin组合起来之后base64加密保存为新的脚本

import base64

f=open('10_million_password_list_top_100.txt','r')
spring=open('test123456.txt','w')
lines=f.readlines()
for line in lines:
Authorization="admin:"+line.strip('\n')
Authorizationbs64=base64.b64encode(Authorization)
print Authorizationbs64
spring.write(Authorizationbs64)
spring.write("\n") f.close()
spring.close()

  

接着点击click,在burpsuite里面抓包,使用intruder模块爆破

x就是我们的爆破字典,注意前面需要添加

Authorization: Basic

  

这个是按照已知信息放置的,然后就可以爆破啦

可以看到返回包长度里面有一个是394,跟其他的不同,查看其响应包

获得flag,得到了flag最后还是解密一下,看看密码是多少

admin:abc123

哈哈哈,这个密码猜几次可能也可以成功吧

第五题 响应包源代码

贪吃蛇游戏,绿色加长度,棕色游戏结束

既然是响应包源码,我们就直接查看源代码吧

获得flag

WEB前置技能就做完了

接下来是信息泄露

第一题:目录遍历

目录遍历漏洞,可以通过谷歌语法批量发现,如:intitle:Index of intext:Parent Directory

在flag_in_here/2/1文件夹下发现flag.txt

点击获得flag

第二题PHPINFO

这个算是低危的信息泄露,能够泄露一部分服务器的配置,比如说禁用了哪些函数。

直接在界面搜索flag吧

接着是备份文件下载

里面有四个小分支

网站源码:

题目已经给出了足够多的提示了

当然可以一个个试,在真实环境中我们一般使用扫描工具扫描是否有备份文件(御剑等)

这里凭直觉猜测www.zip

发现txt文件,不过里面是

我差点以为是隐写MISC题目了,找了好久

然后以为不会做的时候,在网址后面添加了那个txt文件的名字访问,获得flag:(

第二题bak文件

bak文件也是备份文件泄露之一,在实际场景中也经常遇到

可知flag应该在index.php的备份文件里面,于是访问index.php.bak

下载获得flag

第三题 VIM缓存

这里的知识点是:

参考博客:https://www.cnblogs.com/leixiao-/p/9748685.html

vim会自动生成的备份文件以及临时文件

临时文件是在编辑文本时就会创建的文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为  .filename.swp,(第一次产生的交换文件名为“.filename.txt.swp”;再次意外退出后,将会产生名为“.filename.txt.swo”的交换文件;而第三次产生的交换文件则为“.filename.txt.swn”)

因为这里已经告诉我们是index.php了,所以其意外退出而保留的临时文件是 .index.php.swp

.index.php.swp

  注意前面的点不要落下了

得到flag

第四题:.DS_Store

题目已经提示了,于是我们直接下载该文件

下载之后搜索f开头的文件

可以看到这是txt文件,我们往前将整个文件名搜集为5e58cacb03eb652fa1c89746b59f6a60.txt,因为.DS_Store是MAC该目录下所有文件的清单,所以我们直接访问

得到flag

回到上一层目录的第四题 Git泄露

第一题 Log日志文件

这个在真实环境中也经常见到

刚才去吃饭了,继续编辑。

我们可以使用GitHack进行.git泄露的利用,工具下载地址:https://github.com/BugScanTeam/GitHack

我这里是windows10环境,使用是需要将git环境安装在环境变量里。

安装了git后, 在当前文件夹右键打开git bash环境

就会将泄露的部分下载在dist文件夹下。

我们在此位置检查git提交历史记录log(同时因为题目也是Log,所以突破点想到日志信息)

可以看到add flag之后又将其移除了,所以我们只需要检查当前文件和上一次提交文件的不同之处即可

使用git diff 命令

获得flag

第二题 Stash

同样先使用GitHack将git clone到本地,然后查看

stash这个知识点我不知道,去查了一下资料:

git stash

能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。

查看当前堆栈中保存的未提交的修改 使用git stash list

可以看到add flag这个工作也被保存在了堆栈中,所以只需要知道如何恢复就可以了

使用git stash apply

恢复了一个txt文件,查看之

获得flag

第三题 index

同样先将其clone到本地

因为题目是index,所以我们考虑到git的index暂存区文件,这里我参考了这篇博客:https://www.cnblogs.com/panbingwen/p/10736915.html

我们先使用git ls-files查看暂存区里面有哪些文件

当然,index在文件夹里面存在,我们也可以直接打开,不过是乱码

所以我们还是在git 的bash环境中进行操作

接着我们想要查看27741192706094.txt文件内容

首先,我们需要查看27741192706094.txt文件对应的Blob对象,如下:

git ls-files -s -- 27741192706094.txt 或者直接 git ls-files -s

得到:

然后通过Blob对象,查询27741192706094.txt.txt里面的内容:

git cat-file -p 441a2

得到flag

.git泄露题目做完,返回上一层级

信息泄露第五题 svn泄露

svn泄露,svn我们首先下载wc.db文件,主要知识点:

当svn使用了checkout命令后就会生成.svn文件,里面存储着备份信息。svn信息泄露漏洞主要利用了里面的entrist文件,通过.svn/entrist可以下载里面的所有代码,但是只能作用在svn1.6之前的版本;第二个是作用在svn1.7后的版本,svn1.7后的版本引入一个名为wc.db的数据库数据存放文件来管理文件,通过访问.svn/wc.db可以下载到本地。

这里是svn1.7之后的版本,我们下载wc.db文件,/.svn/wc.db

使用SQLiteStudio打开,发现flag_1831822206.txt文件,访问之

访问的时候是404,应该是被删除了,我们使用dvcs-ripper工具:https://github.com/kost/dvcs-ripper

做题目有始有终,把最后两个题目的题解写了

在linux的环境下使用,以及我们需要先下载svn环境,还有perl环境,不然会运行不了dvcs-ripper

然后我们使用

perl rip-svn.pl -u http://challenge-8cad6507cc3f2aca.sandbox.ctfhub.com:10080/.svn/

命令来clone svn文件

我们需要使用ls -al才可以看到隐藏的文件夹.svn

cd进去再ls -al

因为之前我们已经尝试了wc.db数据库里面的文件了,但是发现flag.txt已经被删除了,所以我们到缓存文件夹pristine文件夹里面去寻找flag

在87文件夹里面获取flag

信息泄露最后一题:HG泄露

这道题目还是使用dvcs-ripper工具:https://github.com/kost/dvcs-ripper

使用

perl rip-hg.pl -u http://challenge-0ecf6f106f3a58be.sandbox.ctfhub.com:10080/.hg/

本地生成了.hg隐藏文件夹

然后再.hg文件夹里面找啊找

有一个flag的txt文件,但是不能cat查看,因为知道了名字,所以我们尝试在网址上进行访问

http://challenge-0ecf6f106f3a58be.sandbox.ctfhub.com:10080/flag_64335441.txt

获得flag

整体来说还是很有意思的题目,技能树的题目方式也很新颖,后续的题目做了之后接着出题解吧,奥利给,一起成为信息泄露低危漏洞小子

CTFHub Web题学习笔记(Web前置技能+信息泄露题解writeup)的更多相关文章

  1. CTFHub Web题学习笔记(SQL注入题解writeup)

    Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...

  2. ASP.NET MVC Web API 学习笔记---Web API概述及程序示例

    1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...

  3. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  4. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  5. 【前端】Web前端学习笔记【2】

    [2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...

  6. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  7. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  8. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

  9. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

随机推荐

  1. Python学习笔记1:基础

    1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 你也可以为源文件指定不同的字符编码.在 #! 行(首行)后插入至少一行特殊的注释行来定义 ...

  2. python_udp_多人聊天室_简单版

    udp-一定是client端先发送数据. server.py import socket friend_lst = {'alex':'32','太白':'33'} sk =socket.socket( ...

  3. php判断用户设备类型

    最近做的一个需求里面希望能判断用户访问页面的设备类型,根据不同的类型去加载不同的数据和页面样式.由于技术栈是使用的php,于是考虑在php层面去做这个判断. 假设主要判断的设备有平板和手机为主,分两个 ...

  4. 402. 移掉K位数字

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k.num 不会包含任何前导零.示例 1 : 输入: num ...

  5. gdb调试子进程

    gdb默认情况下,父进程fork一个子进程,gdb只会继续调试父进程而不会管子进程的运行. 在一部分系统中(基于2.6内核的CentOS,支持follow-fork和detach-on-fork模式) ...

  6. deepin V20 简易入门指南

    deepin V20 入坑指南 系统安装 入坑第一步自然是先安装系统了,deepin的安装方式很简单只需要一个U盘即可,在官网下载好安装镜像文件,使用官方的启动盘制作工具,开机时选择从U盘启动即可,安 ...

  7. Java并发编程 - Runnbale、Future、Callable 你不知道的那点事(一)

    从事Java开发已经快两年了,都说Java并发编程比较难,比较重要,关键面试必问,但是在我的日常开发过程中,还真的没有过多的用到过并发编程:这不疫情嘛,周末不能瞎逛,就看看师傅们常说的 Runnabl ...

  8. WinRM服务远程命令执行

    WinRM服务简介 WinRM是WindowsRemoteManagementd(win远程管理)的简称.基于Web服务管理(WS-Management)标准,使用80端口或者443端口.这样一来,我 ...

  9. 利用MathType在Word里输入几何符号的技巧

    通过学习几何学的知识,我们发现其中包含的几何符号有很多,比如有表示图形的符号,如三角形,平行四边形,圆,角,圆弧等:还有表示位置关系的符号,如平行,垂直等:还有表示矢量等其他符号,那这些符号怎么打出来 ...

  10. 337. 打家劫舍 III(树上dp)

    在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个" ...