1.web前置技能之HTTP协议
-
URL的基本认识:
Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL(Uniform Resource Locator, 统一资源定位器)。它是www的统一资源定位标志,简单地说URL就是web地址,俗称“网址”。
-
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,传输层安全)协议把通信内容加密后经网络隧道传输。
-
Windows的curl命令:
-v参数:来显示通信过程,可以显示一次http通信的整个过程,包括端口连接和http request头信息。
-X参数: 这个参数可以配置HTTP的方法,后面接上请求方法。
-d, --data <data> HTTP POST data
-f, --fail Fail silently (no output at all) on HTTP errors
-h, --help <category> Get help for commands
-i, --include Include protocol response headers in the output
-o, --output <file> Write to file instead of stdout
-O, --remote-name Write output to a file named as the remote file
-s, --silent Silent mode
-T, --upload-file <file> Transfer local FILE to destination
-u, --user <user:password> Server user and password
-A, --user-agent <name> Send User-Agent <name> to server
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
题目1:
解决方法:
要求将GET改为CTFHUB,使用curl命令,在命令提示符(cmd)中输入:
curl -v -X CTFHUB “上述题目的URL”
即可得到 flag。
题目2:
解决方法:
因为通过查询该页面的源代码可知flag在index.php页面下
使用curl命令, 在命令提示符(cmd)中输入:
curl -i “上述题目的URL” (备注:记得将"/index.html"改为"/index.php")
题目3
解决方法:
按F12,打开开发者工具,查看”网络“的“Cookie”,发现其admin为0,在”存储“中的Cookie里,将admin修改为1,再按F5,刷新页面,即可得到flag。