【pwnable.kr】coin1

题目描述

Mommy, I wanna play a game!
(if your network response time is too slow, try nc 0 9007 inside pwnable.kr server)
Running at : nc pwnable.kr 9007

思路

直接连接到服务器上,可以看到是一个需要用自动化脚本进行交互的游戏,游戏的规则很简单,只需要根据返回确定正确结果的范围即可搞定。一开始使用脚本会在20多次的时候就timeout,后来将脚本放在服务器的tmp文件夹下,使用其他题目的用户名和密码登录进行操作可以成功拿到flag。
exp如下:

from pwn import *
import socket
import re
context.log_level = 'debug'
p = remote('127.0.0.1',9007)
#p.recvuntil('- Ready? starting in 3 sec... -')
p.recvn(0x44e)
for i in range(100):
    s = p.recvline()
    print(s)
    pattern = re.compile(r'\d+')
    result = pattern.findall(s)
    n = int(result[0])
    c = int(result[1])
    j = 0
    ans = 0
    a = 1
    b = n
    m = n/2
    while c != 0:
        line = ''
        for k in range(a,m):
            line += str(k) + ' '
        p.sendline(line)
        ret = p.recvline()
        retnum = int(pattern.findall(ret)[0])
        if retnum%10 != 0:
            b = m
            m = (a + b)/2
        else:
            a = m
            m = (a + b)/2
        #print("a %d m %d b %d"%(a,m,b))
	c -= 1
    ans = m
    p.send(str(ans)+'\n')
    p.recvline()
    print(i)
p.recvall()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值