CTFHub技能树—Web前置技能—HTTP协议

一,请求方式

1.Burp suite抓包

使用bp抓包,send to repeater

将开头的GET更改成CTFHUB,点击send

在response中获得flag .

2.windows curl

在windows上下载curl命令,-v是详细信息 -X是指定请求方法

命令:curl -v -X CTFHUB http://challenge-1812096a05566a14.sandbox.ctfhub.com:10080/index.php

我们也可以使用Linux下面的curl下令下令行接见该网址,并自定义请求方式为CTFHUB .

注意,接见的时刻在网址后面不要遗忘/index.php了,否则会提醒不允许接见的 。

二,302跳转

1,Linux或DOS(即windows cmd)curl

打开题目,点击超链接发现没有动静,检查元素发现链接到了另一个页面.
检查Network发现返回状态码为302(临时重定向).

使用curl命令
curl不会进行跳转,curl -L会跟随跳转
curl http://challenge-cd12540450609b31.sandbox.ctfhub.com:10080/index.phpcurl -i http://challenge-cd12540450609b31.sandbox.ctfhub.com:10080/index.php

2,Burp Suite抓包

开启拦截功能,点击链接抓包。

发送到Repeater,一直点Go,拿到flag,

三,Cookie

Burp抓包

根据提示,需要admin登录才能得到flag

打开burpsuite进行抓取数据包,

可以看到cookie值为admin=0
(1)我们把0改为1,进行放包(Forword)

查看浏览器返回的数据

(2)分析cookie参数,发送到repeater之后将admin的值改为1,点GO,得到结果。

四,基础认证

打开题目,下载附件,附件是常用密码字典,题目提示Here is flag:click,点击click发现要输入账号密码,提示用户为admin(这里有个笨办法,仅适用于本道题,就是挨个试密码)

输入admin:123456,抓包,查看

发现最下面一行有加密后的密文
使用base64解码

发现是刚刚输入用于验证的账号密码
(1)于是使用脚本把附件密码进行加密
import base64
# 字典文件路径
dic_file_path = './10_million_password_list_top_100.txt'
with open(dic_file_path, 'r') as f:
password_dic = f.readlines()
username = 'admin:' # 用户名
for password in password_dic:
str1=str.encode(username + password.strip())
encodestr = base64.b64encode(str1)
encodestr=str(encodestr)
encodestr=encodestr.strip('b\'')
encodestr=encodestr.replace("=","\=") #避免“=”被转译
print(encodestr)
运行后输出加密后的密文,将结果导出保存为password.tx

使用密文进行爆破
设置爆破的位置(Add&)

导入密码字典

开始爆破

可以看到返回包长度里面有一个是394,跟其他的不同,查看其响应包或在认证栏里输入对应用户密码,发现flag。

(2)将请求包发送到Decoder模块,选择需要解密的内容,decode as设置成base64解码

请求包发送至Intruder模块,将需要爆破的密文给Add §

设置payloads,导入附件中的字典,在payload processing中设置Prefix添加前缀admin:,设置Base64-encode使用base64加密该前缀,记得取消url编码的勾选,不然=会被转换成%3d

点击Start attack开始,最终发现一返回包状态码为200,数据长度为394,在返回包中发现flag

响应包源代码

根据提示直接查看网页源代码

初次写博客,文章有借鉴。

posted @ 2020-11-23 00:15  bsq_echo  阅读(593)  评论(0)    收藏  举报