首页
社区
课程
招聘
命令注入漏洞CVE-2022-26258复现(学习记录)
发表于: 2023-7-16 15:08 20222

命令注入漏洞CVE-2022-26258复现(学习记录)

2023-7-16 15:08
20222

根据漏洞描述可得到几个关键词:远程命令执行、/lan.jsp页面、Device Name 参数、HTTP、POST、get set cpp。

使用binwalk对固件解包,获取文件系统:

根据漏洞描述,查看www/lan.asp文件,并在该文件中查找DeviceName和get set ccp相关内容:

通过lan.asp源码可知在DEVICE_NAME处填入的参数会被拼接到paramStr中,然后函数copyDataToDataModelFormat将paramStr返回为提交参数传给submitParam.arg,传递的URL为get_set.ccp。这里应该是一个POST请求提交数据。在文件系统中查找一下关键词get set ccp:

在文件系统中查找关键词并没有发现名为“get_set.ccp”的文件,没有“get_set.ccp”文件,这个URL应该是交给后端处理,处理好之后将结果返回给用户。但在许多asp文件中都匹配到了get_set.ccp这个URL且有四个二进制文件中也匹配到了这个URL:

模拟成功后访问http://192.168.0.1 ,默认无密码,直接点击Log In即可。

访问http://192.168.0.1/lan.asp:

点击Save Settings 并通过burpsuite抓包查看:

DeviceName和页面内的其他数据被拼接到一起并POST给/get_set.ccp。根据上述信息逆向分析一下和网络相关且含get_set字符串的ncc2程序。

查找一下关键字“Device Name”。通过对比、分析最终定位到如下代码:

通过分析可知这段代码的功能是:获取Obj并判断Obj是否为含注入的字符串(hasInjectionString),如果有注入则释放Obj并退出,若没有注入则将Obj传给_system函数处理。hasInjectionString和_system函数都是导入函数。在文件系统中搜索一这两个函数字符串,找到了一个库文件:lib/libleopard.so

用IDA逆向分析libleopard.so文件,并直接去导出函数中定位hasInjectionString和_system:

通过伪代码可知过滤的字符仅5种,过滤不完全,因此我们可以使用其他字符比如换行(%0a)来注入执行命令。

_system函数的功能是拼接字符串并执行。

固件模拟并抓包修改lanHostCfg_DeviceName_1.1.1.0=后的数据为:

含义为:启动一个telnet服务器并在端口7080上监听所有网络接口。该命令可以让远程用户通过telnet协议登录到该服务器并在/bin/sh shell中执行命令。以下是每个选项的解释:

使用nc连接7080端口获得shell:

上述是根据CVE漏洞披露的信息所做出的复现。实际在复现过程中发现不仅仅是通过HTTP POST to get set ccp存在远程命令执行。

由于是因为字符串过滤不完全导致的命令注入,可以猜想所有HTTP POST且有可能执行的地方都可能存在这个漏洞。在路由后台中发现有一个ping测试页面:

通过抓包改包测试,发现同样存在RCE漏洞,且该漏洞并非存在于CVE所描述的get set ccp而是ping ccp。

在进一步测试中发现直接在ping处输入%0atelnetd -l /bin/sh -p 7080 -b 0.0.0.0%0a即可获得shell:

在复现这个漏洞中发现2022年刚披露的信息和2023年有所不同,2022年的描述更具体,2023的变得模糊一些。刚开始以为是为了保护厂商,避免提示太明显容易被利用。后来在复现过程中发现应该是后续被验证漏洞点不仅仅是/lan.jsp页面、Device Name 参数,其他参数也存在同样的漏洞,所以2023的描述范围扩大为HTTP POST 的get set ccp。如果是这样那么现在发现不仅是get set ccp中存在漏洞点,ping ccp中同样存在。顺便提一下,去厂商的网站查了一下漏洞补丁,在补丁中hasInjectionString的过滤内容修改为:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-7-19 01:49 被伯爵的信仰编辑 ,原因:
上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 14517
活跃值: (17538)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2023-7-17 09:36
0
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2023-7-17 09:59
1
雪    币: 12
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
6
2023-8-4 17:43
0
游客
登录 | 注册 方可回帖
返回
//