https://ift.tt/2IAZYd2
练习目的
- 练习提取智能硬件的固件
- 熟悉mips汇编
- 复习简单的漏洞利用
准备工作
- 下载练手固件
- 确认安装好qemu
- 扩展gdb
- gef或者peda,pwndbg都行
开始
固件提取和架构确认
使用binwalk提取固件
确认程序语言架构
查找漏洞
通过阅读源码我们发现,这只是一个非常简答的缓冲区溢出
我们要做的就是溢出ra地址,覆盖返回地址为dat_shell函数的地址
拷贝qemu 二进制文件
cp $(which qemu-mipsel-static) .
使用qemu 创建远程模拟环境
sudo chroot . ./qemu-mipsel-static -g 1234 ./pwnable/Intro/stack_bof_01
运行gdb,设置语言框架和远程调试端口
设置框架语言
set architecture mips
链接到远程调试端口
target remote 127.0.0.1:1234
使用pattern ,创建300个字符串用于查找溢出点
重启qemu,以生成的字符串作为参数运行
打开gdb,运行,查找溢出点
通过上图可以得知,在ra处的返回地址发生了错误
使用pattern search 确认溢出点的位置
从上图可以看出,在204个字节的地方发生了溢出,也就是说可以从204个字节后填充要跳转的地址,接下就就是确认要跳转的函数的地址
确认dat_shell函数的地址
上图可以看到,前3条指令都有全局变量有关,而我们并不想动gp相关的指令,因此使用0x0040905c
作为跳转地址
pwn!
The post IoT:MIPS exploit 练手 appeared first on cole.
https://ift.tt/2IUkAjO IoT, iot, IOT_PENETRATION, mips May 20, 2018 at 10:18PM
评论
发表评论