CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

似水流年梦 2020-04-19

1.打开题目,点击click

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

2.下载附件后,发现是一个密码字典,考虑该题为账号密码爆破

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

3.根据基础认证相关知识,Burp打开,输入admin/admin看下登录请求

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

4.将YWRtaW46YWRtaW4=解密内容为:admin:admin

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

5.需要使用python编写脚本将密码加密,脚本如下:

#! /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)

运行脚本,结果如下:

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

6.将结果导出保存为password.txt

7.Action将请求包发送至爆破模块,设置Payload positions选择Authorization: Basic后内容,字典选择刚才保存的password.txt

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

8.可以看到返回包长度里面有一个是394,跟其他的不同,查看其响应包,发现flag

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

还有一种方法,不使用脚本,直接使用Burp内置decode功能,方法如下:

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

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

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

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解3.设置payloads,导入附件中的字典,在payload processing中设置Prefix添加前缀admin:,设置Base64-encode使用base64加密该前缀

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

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

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

避坑提示:

在做这个题目时,采用第一种方法一直无法获取flag,后经参考资料,发现payloads设置里payload encodeing设置里前面的勾要去掉,不然会将base64里“=”编码,导致错误

CTFHub-Web-Web前置技能-HTTP协议-基础认证详解

相关推荐