例行检查

开了沙箱

程序逻辑很简单,存在0x18字节溢出,看是否能进行栈迁移,目前可控输入只有buf,但是buf只有0x20大小不够rop,所以尝试别的方法。程序在最开始mmap了一块内存,可写可执行,那么接下来目标就是1.在这块内存上写shellcode
2.跳转过来执行
由于不能rop且栈是可执行的想到能不能进行jmp rsp。在程序中找到了这个指令。

那么就可以在buf上布置read以及跳转的shellcode。在jmp rsp时跳转到buf去执行,buf地址是rsp-0x30,sub rsp,0x30;jmp rsp小于8字节满足要求。
from pwn import *
io=remote('node3.buuoj.cn',

本文介绍了在极客大挑战2019的一个安全问题,涉及到0x18字节溢出和栈迁移。由于栈空间限制无法直接使用ROP,作者发现程序mmap了一块可写可执行的内存,计划通过在该内存区域写入shellcode并利用jmp rsp指令执行。策略是构造buf包含read指令和跳转shellcode,然后通过sub rsp,0x30;jmp rsp来执行buf中的代码。"
133539042,19673928,HTML元素隐藏技巧:CSS与JavaScript实现,"['HTML', 'CSS', 'JavaScript']
最低0.47元/天 解锁文章
1034





