CTFHUB 技能树-Web-HTTP-基本认证 wp

Posted by WuJ on March 1, 2020

CTFHUB

题目考点

  • Basic access authentication
  • 脚本编写
  • 爆破

解题思路

  1. 打开题目链接,发现需要输入用户名和密码才能访问

01

  1. 题目提供了常用密码top100,应该是爆破,因为范围很小,所以我们一个个试就好了,所以我们可以编写简单脚本

  2. 写脚本前先了解一下基本认证是什么,照搬题目描述:“在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。详情请查看 https://zh.wikipedia.org/wiki/HTTP基本认证”

    关键的地方如下:

    02

  3. 使用 Burp 抓包,添加 Authorization 头字段,使用爆破模块

    03

    其中,payload 部分编写脚本生成

    04

  4. 根据提示,容易猜测用户名为 admin,那么 Authorization 头字段的格式就应该为 Authorization: Basic [base64(admin:密码)]

    05

    通过以下脚本将提供的密码列表按格式生成好

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    import sys
    import base64
       
    l = []
    with open('/Users/wujing/Downloads/10_million_password_list_top_100.txt','r') as f:
    	for line in f:
    		l.append(line.strip('\n').split(',')[0])
    # print(l[0])
    dic = []
    for ll in l:
        encodestr = base64.b64encode(("admin:"+ll).encode('utf-8'))
        print(str(encodestr,'utf-8'))
    

    ​ 将结果放进爆破模块的 payload 中,进行爆破,解码得到密码

    06

    07

    输入用户名密码获取flag