cbctf2023 - The Legend of Shellcode
文件属性
属性 | 值 |
---|---|
Arch | x64 |
RELRO | Full |
Canary | on |
NX | off |
PIE | on |
strip | no |
libc | 2.31-0ubuntu9.12 |
解题思路
nx没开,栈上放了一堆ret
,一运行就是pop rip
,那么控制好rsp,就能让rip跳到下一个read的段;
由于我想的是add rax,0x10;push rax
的方式移动rip,因此读入9字节,只剩4字节空间了,不适合放"/bin/sh"
字符串,因此考虑在初始读入的位置搓一个SYSCALL_read
出来方便读入完整的shellcode(打newstar ctf打的),
再跳转过去就可以拿到shell
赛后交流发现short jmp所耗字节更少,还是疏忽了
EXPLOIT
1 | from pwn import * |
- 标题: cbctf2023 - The Legend of Shellcode
- 作者: RocketDev
- 创建于 : 2024-04-22 00:35:00
- 更新于 : 2024-07-25 12:34:56
- 链接: https://rocketmadev.github.io/2024/04/21/TheLegendOfShellcode/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论