PWN——SROP(高级ROP)

Srop

在这里插入图片描述
Srop 的全称是Sigreturn Oriented Programming

Srop 可以理解成一种高级的ROP,利用了linux下15号系统调用的->rt_sigreturn

Signal

Signal是Unix系统中的一种通信机制,通常用于在进程之间传递信息,也可以说是软中断信息

常见于在一个进程中,内核向其发送发送软中断信号,该进程将暂时被挂起,系统进入内核态

因为是暂时被挂起,所以系统会保留该进程的上下文 (部分内容摘自ctf-wiki)

将所有的寄存器压入栈中,以及signal信息和指向sigreturn的系统调用地址在栈顶上放置rt_sigreturn

此时栈上的内存分布:
在这里插入图片描述

这一段内存也被称为Signal Frame

漏洞利用点

Signal Frame 被放置在用户进程的内存空间中,也就说Signal Frame是可以读写的

在恢复Signal信号的时候没有检测,也就是说我们可以通过改变Signal Frame中的信息来劫持控制流

例如:
1 | rax = 59//对应59号系统调用-> exceve
2 | rdi = ‘/bin/sh’
3 | rsi = 0
4 | rdx = 0

这样就能进行一个最简单的Srop

Srop链

有时候我们希望执行一系列的操作,此时可以通过syscall ret;这个gadget去串联起我们我们的Srop链

执行完一个SignalFrame接着执行下一个SignalFrame。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pr0b1em

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值