1.一道工控路由器固件逆向题的源码WriteUp
一道工控路由器固件逆向题的WriteUp
这是一篇关于工控路由器固件逆向工程的WriteUp,作者希望通过知乎分享自己的解析学习过程和技术总结。问题在于路由器存在处理TDDP协议时的知乎命令注入漏洞,可以进行RCE利用。源码风险评估 系统源码
首先,解析从压缩文件中提取出的知乎bin文件呈现为一个标准Linux文件系统。目标是源码定位到处理TDDP协议的二进制文件中处理CMD消息类型的漏洞点。通过grep命令和协议分析,解析定位到/usr/bin/tddp文件,知乎并进行静态分析。源码
在IDA中加载./usr/bin/tddp,解析ida看c 源码关键字符串集中在同一个函数中,知乎追踪后找到漏洞函数。源码这个函数解析接收到的解析tddp数据并执行相应操作。漏洞出现在处理CMD_FTEST_CONFIG分支,知乎参数v8是素材火源码模板通过协议传入的数据指针。解析函数sscanf存在过滤缺陷,允许命令注入,进而执行恶意代码。
通过函数调用链交叉引用,分析到数据是同城跑腿源码 开源从CMD_handle函数接收的,随后进行堆内存初始化。根据CMD_handle的判断,数据存储在位置,需要构造特定的CMD_FTEST_CONFIG+0x1+0x来触发漏洞。
为了验证漏洞,限制使用次数源码作者搭建了ARM QEMU虚拟机环境,包括选择硬浮点的armhf版本,下载并配置所需的Debian ARM文件。通过QEMU模拟固件运行,尝试命令注入获取shell。具体步骤包括设置网络通信,将固件文件系统上传到虚拟机,配置HTTP服务器,启动tddp服务,并利用UDP发送构造的数据实现Exploit。
最后,作者对整个过程的体验表示满意,尽管需要手动添加,但Markdown文档的自动排版功能让写作更为便捷。