前言
刚好在挖掘TPLink路由器,分析了几个版本的固件之后,正好看到了这个漏洞,所以拿来分析一下。
模拟
模拟器的话就使用FirmAE,不过测试了一下,新版本的固件是无法模拟的,一般固件版本发布时间大于2016的年份是无法进行模拟的,不过官方提供了固件就无需再重新提取固件了。
https://service.tp-link.com.cn/download?classtip=all&p=1&o=0
下载固件,使用binwalk解压
binwalk -e wr841nv3.bin –run-as=root
解压文件目录结构
对于固件而言,一般只要可以解压的都可以模拟。
sudo ./run.sh -r d-link ./wr841nv6.bin
逆向
根据目录文件可以看出是起的httpd的服务,逆向httpd文件,F5反编译
搜索字符串,直接搜命令执行的函数
搜索”cmd”,其实这里搜索其它的函数没有拿到有用的信息,上图中的uri其实抓包的时候发现并没有功能指向
访问路径
http://192.168.1.1/userRpmNatDebugRpm26525557/linux_cmdline.html
该页面的使用需要授权,需要账号密码,根据代码路径向上追踪
根据页面的逻辑分析,再执行之后都是由DebugResultRpm.htm
响应结果,所以这里向下看
这里可能调用了cmd执行了内容,且里面也有我们需要的字段passwd
,向上跟进
发现httpGetEnv方法调用了cmd
F5反编译
证明猜想没有问题,这里匹配了usr和passwd的字符串,代码中写死了用户名以及密码
osteam/5up
执行命令
小结
逆向过程不难,作为一种思路吧。
原文始发于CN-SEC:TP-Link WR841路由RCE挖掘逆向分析
相关文章
暂无评论...