一.请求方式
解题:
使用 Windows 自带的cmd
命令行中的 curl命令。
curl -v -X CTFHUB url
输入这个命令,按下回车,所有的服务器返回信息就会打印在下方。在返回的 html 源码中找到 ctfhub{……}即可。
curl 简介
- cURL:全称 client URL,客户端 URL 工具。
- cURL 是一种常用的命令行工具,主要用来请求 Web 服务器,也可以用来下载文件。
- 一般情况下,Linux/Windows/Mac 系统都默认安装了 cURL 指令,所以我们可以直接使用。
curl 命令介绍
curl 命令在 Linux 操作系统中经常来测试网络和 url 的联通性,模拟正常的网络访问。除此之外,curl 还支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件等功能。
curl常用方法
1.curl url(获取网址的文本信息)
curl www.baidu.com
2.curl -i url(获取文本的头部及文本信息)
curl -i www.baidu.com
3.curl -x proxy url(使用代理请求网页内容)
curl -x 0.0.0.0 www.baidu.com
4.curl -v(获取整个通信过程)
curl -v www.baidu.com
5.curl -X url(使用特定方法请求网页文本)
curl -X GET www.baidu.com
在本题中就用到了 4,5 两种命令。
要注意这里的-X
是大写,而 3 中的-x
是小写。
6.curl -I url(仅返回头部信息)
curl -I www.baidu.com
想要了解更多,可以参考Linux curl命令最全详解-优快云博客
二.302跳转
解题:
用在Linux系统里用curl命令,即可得到flag。
curl命令默认不跟随重定向的,所以可以访问,得到flag。
curl url~
HTTP临时重定向:
HTTP 临时重定向可能会用在站点维护期间的网页跳转或者更改网页链接后为了保留书签让用户能通过以前的链接访问更新维护后的新链接。但是搜索引擎不会记录该新的、临时的链接。
重定向的类型:
状态码 名称 中文描述
300 多种选择 请求的资源可以有多个位置,浏览器可以有多种选择
301 永久移动 请求的资源被永久移动到新链接,浏览器会自动定向到新链接
302 发现 资源被临时移动,客户端还继续使用原有链接
303 查看其他 GET或POST请求查看其他链接
304 未修改 请求的资源未修改,将不会返回任何资源
305 使用代理 所有请求的资源必须通过代理访问
307 临时重定向 使用GET请求临时重定向
想要了解更多,可以参考
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Redirections.
https://www.runoob.com/http/http-status-codes.html.
三.Cookie
解题:
进入题目
它说只有admin登录才能得到flag
我们使用burp suite工具抓包
看到admin=0,0和1对应的是两个状态,我们把0改成1试一下,点击forward,直接就得到了flag。
什么是Cookie?
Cookie得中文意思是曲奇的意思,就是一种数据文件。类型为“小型文本文件”,Cookie是服务器存储在客户端的一段文本信息,当客户端发送访问请求时服务器会发送给客户端一个cookie并存储,第二次客户端再次发送访问请求时cookie会被包含在Http头文件发送给服务器,浏览器检查到有cookie信息就会默认这是已经验证过的用户,不会进行第二次验证。
想要了解更多,可以参考
cookie是什么?有什么用?cookie详解,一篇文章彻底搞懂cookie_cookie的作用-优快云博客
Cookie和Session的区别与联系_.简述session对象和cookie的区别于联系。-优快云博客
四.基础认证
解题:
首先,打开题目所给界面。这里他给了我们一个密码本
有一个可以点击的选项,正常思路,我们会点击这个click交互键
然后弹出来了一个登陆界面,这里老规矩,打开burpsuit,进行抓包
随便输入用户名和密码,然后进行抓包,发现了Authorization:后面有一串BASE64的编码
尝试进行解码,解码这个base64后,发现是我们刚才输入的用户名和密码,用:进行了隔开
目前有了密码本但没有用户名的线索,将其发送到重发器重新发包,得到“Do You Know admin”的信息,推测用户名为admin
把抓到的包发送到爆破模块intruder,选择刚才的base64字符串,记住,不要吧basic选上了,选择狙击手。点击payloads
这里又常规的爆破选项,导入密码本。但是切记,因为密码和用户名是base64加密的,所以有效载荷处理这里要手动处理一下
选择添加,添加前缀,这里我们用户名是admin,所以只需要添加前缀,切记加:
添加完前缀,这还不够,再添加一个编码,选择Base64-encode,还有一点,有效载荷处理要取消,不然爆破不出来。
攻击后,找到时长不一样的一项,查看它的响应,即可得flag
HTTP 基础认证
HTTP 基础认证框架,浏览器(用户)可以提供身份验证凭证给服务端,由服务端发送请求 challenge 来查询。工作流程如下:服务器向客户端返回 401 状态码并在首部提供如何进行验证的信息,其中至少要包括一种查询方式。用户可以通过证明自己的身份在新发送给服务端的请求中添加 Authorization 首部字段来验证。通常凭证信息会被编码或者加密处理。
想要了解更多,可以参考
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Authentication.
五.响应包源代码
解题:
打开题目给出的链接后,发现是一个贪吃蛇游戏
·题目提示为响应包源代码查看,于是使用开发者工具查看
很容易就找到了flag
什么是响应包?
用户发送的请求包达到服务器后,要去处理该请求,把处理之后的结果发送给用户浏览器,我们将该结果称为响应包,用response表示。
响应包格式:response=状态行(协议/版本 状态码)+消息报头+空行+响应正文(也叫做响应内容,是由HTML+CSS+JS组成的响应正文)
开发者工具
以下是开发者工具的简单使用
想要了解更多,可以参考