2021DASCTF Misc red_vs_blue

(第一次接触到需要nc连接的杂项题)

没有nc的需要先安装(Linux在终端输入apt install netcat)

安装完成后,直接nc xxxxxx xxxx 

输入r/b猜测红蓝队的胜利,连续猜对66次就可以得到flag

如果错了就要重新猜(答案顺序不变),但是90秒后会自动断开连接,重新连接后答案顺序会改变,所以要人力无法完成的,要用脚本在90秒内跑出来,脚本如下: 

from pwn import *       #需要用到pwntools模块
context.log_level = 'debug'
io = remote('node4.buuoj.cn', 25900)        #连接,相当于nc,注:25900是端口,每一次开靶机基本上都不同
payload = ['r'] * 66    #先把答案设置成66个‘r’
restart = 1
while restart:
    restart = 0        #先把restart改为0,避免死循环
    for i in range(66):        #循环发送答案
        io.recvuntil('choose one [r] Red Team,[b] Blue Team:')        #接收函数,一直接收,直到接收到设定的字符串才进行下一语句
        io.sendline(payload[i])        #发送函数,上传第i个答案
        io.recvuntil('Team')
        io.recvuntil("Team\n")        #因为输入一个答案后会有两个'Team'的字符串,所以接收两个‘Team'后进行下一语句
        p = io.recv(10)        #接收函数,可控制接收的字符数量,这里接收10个字符
        if 'The number' in p:        
            continue        #接收到'The number'则说明这个答案对了,继续进行下一个for语句发送下一个答案
        else:
            io.recvuntil('Play again? (y/n): ')         #如果没有接收到'The number',则第i个答案错误,接收完字符
            payload[i] = 'b'        #将第i个答案改正
            io.sendline('y')        #发送‘y’重新游戏
            restart = 1         #将restart改为1,将会重新while循环
            break
io.interactive()

该脚本需要用到Python的pwntools模块,安装方法:

pip install pwntools

结果:

flag:

flag{9f42b688-4127-4558-a7d0-776a14997d17}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值