WEB -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参数输出通信的整个过程,用于调试。)
打开CMD ,输入 curl -v -X CTFHUB http://challenge-05d6fc1837d37b70.sandbox.ctfhub.com:10080/index.php
得到flag
也可以使用burp把get改成CTFHUB
302跳转
无论输入什么都会跳转到index.html
可知flag在index.php中,于是我们可以使用curl命令行来查看响应。
也可以使用burp抓包来改成index.php
COOKIE欺骗伪造
根据题目我们必须要伪造成管理员才能得到flag,可以通过改cookie来伪造成管理员,把cookie=0改成cookie=1。
得到flag。
基础认证
输入账号密码试试
抓包
猜测账号为admin
Authorization: Basic YWRtaW46MTIzNDU2,这里是基础认证,账号密码在里面,使用base64解码。
果然是我们输入的账号密码。于是我们可以来爆破。
因为是认证base64转码后的,使用我们要对密码进行处理,添加base64转码。
猜测用户名为admin,所以我们要添加前缀admin:
注意:一定要先加前缀admin:然后在开始转码,因为服务端判断的是base64转码后的码。
然后而且这个选项不能勾
Payload Encode 取消勾选的 URL-encode, 不然你会看到 base64 之后的 = 会被转成 %3d ,你就算爆破到天荒地老也不会出来
base64解码为admin:cheese
HTTP响应包源代码
直接抓包查看响应得到flag
或者curl 输入 curl -v -X GET http://challenge-c98908909a809574.sandbox.ctfhub.com:10080/
得到flag
或者按f12 0.0