当前位置:首页|资讯

【pwn26 第九届中国海洋大学信息安全竞赛 baby_stack】

作者:K3yB0ard发布时间:2024-10-15

栈迁移+沙箱逃逸orw的题目

程序保护只开了NX。

sandbox

开了沙箱只允许open、read、write、exit四种系统调用,铁打的orw题。由于开了NX但是又不给mprotect,只能考虑ROP形式的orw链,还是比较少见的。

func

上面的func函数是程序主要逻辑,buf可以溢出0x10字节,第一次泄露libc地址,拿到相应的gadget为后续攻击做准备。第二次迁移栈到bss段上,同时借助程序自身末尾的leave ret,我们可以直接把返回地址覆盖成main中第二次read的地址,相当于又有一次读入数据的机会,这次读入ROP链子到bss段上,布置好相应的数据。

ROP链末尾再次栈迁移到ROP链处执行ROP,orw读取flag输出。

值得注意的是打开文件成功后的文件描述符自增1,默认为3

最终getshell的payload链子:

最终攻击脚本:

运行脚本得到flag

exp result

By Del0n1x

Keyboard


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1