CTFHub题解-技能树-Web-Web前置技能-HTTP协议【请求方式、302跳转、cookie、基础认证、响应包源代码】
CTFHub题解-技能树-Web(Web前置技能-HTTP协议)
平台访问链接:https://www.ctfhub.com/#/skilltree
其他模块平台还没有开放,所以 我们就先来试试http协议模块的测验~
(一)请求方式
1.知识补充
(1)http 1.1
http协议请求由三部分组成,分别是:请求行、消息报头、请求正文。
请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。
【Method】 【Request-URI】 【HTTP-Version】 【CRLF】
下面是一个实际的HTTP响应报文:
HTTP的响应状态码由5段组成:
-
1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
-
2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
-
3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
-
4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
-
5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
(2)curl用法
curl是一个和服务器交互信息(发送和获取信息)的命令行工具。
查看http响应头:curl -i http://www.xxx.com
查看交互过程: curl -v http://www.xxx.com
GET请求: curl -X GET http://www.xxx.com (当发起http请求时,curl会默认发起GET请求,也可以"-X GET"方式指定。)
POST请求: curl -X POST http://www.xxx.com -d “参数”(当使用POST请求方式,需要通过指定“-d”,向服务器传递数据。)
调试:curl -v https://www.xxx.com (-v参数输出通信的整个过程,用于调试。)
2.题解
打开之后是这个样子的~
大概意思就是,需要你用CTFHUB 方法请求 index.php来获取flag~
注意:HTTP Method 是可以自定义的,并且区分大小写.
命令:curl -v -X CTFHUB http://challenge-74da4bfe747dae2a.sandbox.ctfhub.com:10080/index.php
(二)302跳转
1.知识补充
HTTP状态码
详情请看查看菜鸟教程的状态码资料。
https://www.runoob.com/http/http-status-codes.html
这里笔者贴出了和这次题目相关的302状态码解释。
2.题解
打开是这样的。
F12->network
用burpsuite抓包看一下,不会设置burpsuite的小伙伴们可以去看一下笔者的这篇博客:
Burpsuite常用模块之proxy、spider 、decoder(https://www.cnblogs.com/0yst3r-2046/p/10998657.html)
在repeater模块,Go一下,看到response回显。
ok啦~
(三) Cookie
Cookie欺骗、认证、伪造
1.知识补充
cookie是什么呢?
cookie是由后端服务器端创建保存在客服端一种数据库结构。浏览器请求和后端服务端响应都会携带创建的cookie来回传输。cookie在传输时存储在请求头和响应头中。
cookie的作用: 保存用户与后端服务器的交互状态。
2.题解
用burpsuite抓包看一下~
我们看到Cookie:admin=0
这就表示我们不是管理员,那么我们把0改为1
修改后的,发送至repeater模块
Go一下,就看到flag啦~
(四) 基础认证
1.知识补充
(1)HTTP基本认证
桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64算法加密后的字符串放在http request 中的header Authorization中发送给服务端, 这种方式叫HTTP基本认证(Basic Authentication)
(2)HTTP基本认证的过程
第一步: 客户端发送http request 给服务器,
第二步: 因为request中没有包含Authorization header, 服务器会返回一个401 Unauthozied给客户端,并且在Response的 header "WWW-Authenticate" 中添加信息。
第三步:客户端把用户名和密码用BASE64加密后,放在Authorization header中发送给服务器, 认证成功。
第四步:服务器将Authorization header中的用户名密码取出,进行验证, 如果验证通过,将根据请求,发送资源给客户端
2.题解
又要用到burpsuite啦~
抓包抓包
这个top100是题目里面的题目附件~
大家不要自己去找字典哦~
(五)响应包源代码
1.知识补充
查看源码
2.题解
F12->elements
或者,可以右键,查看源码~
这样,前置技能的HTTP协议就全部解锁啦~
开心。
参考资料:
https://www.cnblogs.com/xiaocao123/p/10392145.html
https://tool.oschina.net/commons?type=5
https://www.runoob.com/http/http-status-codes.html
--------------------- ┑( ̄Д  ̄)┍ --------------------------
作者:0yst3r[一只在安全领域努力奋斗的小菜鸡]
来源:博客园[ https://www.cnblogs.com/0yst3r-2046/ ] 引用时请注明来源哦~
(๑•̀ㅂ•́)و✧ヽ(✿゚▽゚)ノ(*^▽^*) φ(≧ω≦*)♪
如果本文对你有用,本人不胜欢喜。
The world is your oyster.