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://rocketma.dev/2024/04/21/TheLegendOfShellcode/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论