date | challenge | tags | ||
---|---|---|---|---|
2024-10-10 23:09 |
mips_fmt |
|
mips 32 位大端的题,有无限循环的格式化字符串,也就意味着可以无限构造 payload,因此这就变成一道编程题:
- 先实现格式化字符串向栈上写入数据的能力;
- 再把 shellcode 布置到栈上,同时改写返回地址。
Important
这里是因为 mips 没有实现 NX 的能力,所以栈也是可执行的。在测试格式化字符串的过程中可以注意到,mips32 函数的前四个参数依次放在 A0、A1、A2、A3 寄存器中,剩下的放在栈上。