题目如上。
审题:由题可知这道题涉及HTTP协议知识,题目还说这个协议中定义了八种方法(也叫动作)以不同的方式操作指定的资源。其中这八种方法具体如下:(摘自《图解HTTP》和网络)
1、GET:获取资源——请求指定的页面信息,并返回实体主体
GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回;如果是像CGI (Common Gateway Interface,通用网关接口)那样的程序,则返回经过执行后的输出结果。
2、POST:传输实体主体——向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。
虽然用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。虽说POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。
3、PUT:传输文件——向指定资源位置上传其最新内容
PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。
4、HEAD:获得报文首部
HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。
5、DELETE:删除文件
DELETE方法用来删除文件,是与PUT相反的方法。DELETE 方法按请求URI删除指定的资源。
6、OPTIONS:询问支持的方法——允许客户端查看服务器的性能
OPTIONS方法用来查询针对请求URI指定的资源支持的方法。
7、TRACE:追踪路径——主要用于测试或诊断
TRACE方法是让 Web 服务器端将之前的请求通信环回给客户端的方法。(但易引发XST攻击,不常用)
8、CONNECT:要求用隧道协议连接代理
CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL (Secure Sockets Layer,安全套接层)和TLS ( Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
打开网址,如下图:
解题:
第一种方法
页面显示的是,HTTP的请求方法是GET,使用CTF**B方法,我将会给你flag。
猜想CTF**B大概是CTFHUB,所以就想将请求报文中的GET改成CTFHUB。
用burp Suite抓包:
将GET改成CTFHUB:
得到flag。
第二种方法(在网络上看见的另一种解题方法)
要用window+R(CMD)中自带的curl命令。
curl命令也可用于Linux系统中,功能强大,这里用来执行HTTP请求。
curl -v -X CTFHUB 网址
输入结果如下:
最后得出flag。
-v参数的意思在里面查询出来的是:
网上查询结果是:
-v参数:来显示通信过程,可以显示一次http通信的整个过程,包括端口连接和http request头信息。
-X参数: 这个参数可以配置HTTP的方法,后面接上请求方法。