欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[翻译]rConfig v3.9.2 两个 RCE 漏洞(CVE-2019-16663、CVE-2019-16662)

[翻译]rConfig v3.9.2 两个 RCE 漏洞(CVE-2019-16663、CVE-2019-16662)

翻译人:cherrir

校对人:lipss

原文:

https://shells.systems/rconfig-v3-9-2-authenticated-and-unauthenticated-rce-cve-2019-16663-and-cve-2019-16662/ 


关于rConfig

rConfig是一个开放源码的网络设备配置管理实用工具,用于网络工程师对其网络设备的配置。



关于漏洞的利用

我在两个文件中分别发现了两个远程代码执行漏洞。第一个是ajaxServerSettingsChk.php,攻击者可以通过rootUname参数发送精心构造的一个GET请求,触发未授权RCE漏洞。rootUname参数在源文件第2行中定义,随后会在第13行传递给exec函数,攻击者可以构造参数接收内容实现让操作系统执行恶意命令。这个漏洞很容易利用和发现,后面的篇幅中我将介绍如何发现并利用这个漏洞。

第二个漏洞是在search.crud.php发现的,这文件需要通过身份验证才能触发远程代码执行漏洞。这个漏洞可以通过构造一个包含有两个参数的GET请求触发,

其中searchTerm参数可以包含任意值,但该参数必须存在,才能执行到第63行的exec函数。

跟我平常找RCE漏洞的方法一样,因此我使用自己开发的一个Python脚本来列出有哪些不安全的函数。这个脚本在先前的案例研究中曾经使用过。

未授权RCE分析

运行这个脚本过后输出了一些结果,我开始分析这些输出结果并且注意到路径为install/lib/ajaxHandlers/的ajaxServerSettingsChk.php文件,部分代码如下:



从代码可以看出,第2行脚本代码的意思是将GET请求中的rootUname参数值赋值到$rootUname变量中。

在第12行,代码将$rootUname与一些字符串拼接在一起,保存到rootTestCmd1变量,然后传递给第13行的exec函数。后续代码执行了相同的操作。

因此,我们只需注入特定构造命令,在第13行跳出转义字符串来执行命令,为此,我们可以使用如下的Payload:

;your command #

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功