题目描述
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()