一、请求方式
问题描述
HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。打开网址,出现
个人解析
- 题目中描述到了一个点:http是get请求,你需要把它改成CTFHUB请求模式,便可以拿到flag
解法
-
利用burp抓包软件,浏览器建议使用火狐,先配好代理(网上搜“burp使用”)
-
打开proxy的intercept按钮里面的“intercept is on”,刷新下网址,进行抓包
-
将抓取到的信息报里的get 改成 “CTFHUB”,在点击 action -> send to repeater
-
点击Repeater, 查看flag
二、重定向
问题描述
点击链接,还是显示原来的页面,存在跳跃现象,如下图
解法——使用工具:Burp
- 利用burp抓包,此时的包是这个错误网页的,如果我们拿这个包去重发,会没啥结果;
- 点击“drop”,丢弃这个没用的包,再开始重发“send to repeater”
- 点击repeater,查看flag
三、cookie
问题描述
需要管理人身份才可以进行访问
摸索
burp
- 抓包,发现有条信息这样描述“Cookie: admin=0”,加上网页显示的信息“only admin~~”
- 马上将admin改成1,重发数据包 在repeater模块,go一下,获得相应结果
四、web爆破
【参考资料】
【问题描述】
在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。
详情请查看 https://zh.wikipedia.org/wiki/HTTP基本认证
摸索
"""
Author:Lucky_bacon
Tool:Pycham、python3
"""
#! /usr/bin/env python3 # _*_ coding:utf-8 _*_
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)
- 并base64加密,得到一大串数据
- 添加到Intruder模块里的payloads
- 并在positions里的数据包上,标记需要爆破的地方,也就是需要更改的地方
- 开始爆破
- 将所有的密码前面加上“admin:”,并base64加密
- 拿到burf,进行字典爆破,得到一个状态码为200的数据
- 对其信息解密,便可以拿到
- ②不用.py脚本,利用burpsuit的机制
注意
- 需要掌握burpsuit的密码爆破的基本操作
- 每次重开一次环境,密码会变化
- 注意到底是哪一块信息需要爆破,不能随便加“$”
五、响应包源代码
【问题描述】
HTTP响应包源代码查看
具体思路——直接查看源码即可