D-Link DIR505路由器溢出漏洞复现
一.基本IOT试验环境准备
本试验需要基于一些常用二进制以及模拟器工具,实践之前请提前安装和准备:
binwalk及sasquatch 插件安装:
binwalk用于IOT固件解包以及文件系统、二进制文件提取。
buildroot交叉编译环境安装
用户在X86 环境下编译其他CPU架构的二进制程序。
qemu模拟器安装
虚机程序,可使用它在X86环境下模拟运行其他CPU架构的二进制程序。
wine模拟器安装
Linux环境下的windows程序运行模拟器。本实践采用在Linux环境下运行IDA 逆向工具。
二.漏洞复现及利用过程
2.1淘硬件:
在咸鱼平台上淘这类IOT小设备作为试验用途还是挺实惠的,如下图40元包邮搞定DIR505路由器硬件:
2.2固件包获取及二进制提取:
如果是从二进制着手去挖掘漏洞固件获取是第一步。在能够通过互联网手段下载到固件包的情况下优先直接下载;否者需要采用编程器这类设备进行固件提取,本次实践直接在网上找到了固件包,版本为:DIR505A1_FW105CNB01.bin
预先安装好binwalk工具,并安装sasquatch 文件系统补丁,进行文件系统提取,拿到my_cgi.cgi二进制文件,供后续分析。采用binwalk -Me 命令进行解包、提取后,拿到sasquatch文件系统如下图所示:
my_cgi.cgi文件在 /usr/bin路径之下: