BROP
- 基于远程服务崩溃与否, 进行ROP攻击获得shell
- 可用于开启ASLR, NX, canaries的64位linux
应用条件
- 目标程序存在栈溢出漏洞, 且可以稳定触发
- 进程崩溃后会立即重启, 且内存不会重新随机化. 如果启用PIE编译, 服务器需要是fork服务器, 且不使用execve进行重启
BROP攻击的流程
- stack reading: 泄露canaries和返回地址
- blind ROP: 远程搜索gadgets
- build the exploit: 利用得到的gadgets构造ROP, 将程序传回本地, 归约到一般ROP攻击
BROP防御措施
- 同时开启ASLR, PIE, 并且在程序重启时随机化内存地址空间和canaries
- 进程发生段错误后延迟复刻新进程, 降低枚举速度
- 常用的ROP防御措施, 控制流完整性CFI等