漏洞情报
在 D-Link DIR-825 2.10 中发现了一个漏洞。受该漏洞影响的是组件 httpd 的文件ping_response.cgi的函数get_ping_app_stat。参数ping_ipaddr的作会导致基于堆栈的缓冲区溢出。攻击可以远程发起。该漏洞已向公众披露并可能被使用。
信息收集
binwalk
binwalk -Me DIR825B1_FW210WWB01.bin
binwalk先解包固件
file&checksec
在squashfs-root目录下查看固件基本信息
看到是MIPS架构32位大端序
firmwalker
可以看到该固件web服务器是httpd
固件模拟
FirmAE
sudo ./run.sh -d dlink DIR825B1_FW210WWB01.bin
浏览器打开192.168.0.1
模拟成功!
漏洞分析
在IDA分析httpd文件,检索函数get_ping_app_stat
1、缓冲区 v5[256]
fread(v5, 0x100u, 1u, v2);
0x100
= 256,正好等于缓冲区大小。- 如果 ping 输出超过 256 字节,理论上不会溢出(因为
fread
按照大小读取,但这里的问题是 system 命令的格式化字符串)。
**2、`system("ping -c 1 "%s" > /var/misc/ping_ap