## rConfig v3.9.2 RCE漏洞 ## 0x00 前言 rConfig是一个开源网络设备配置管理解决方案,可以方便网络工程师快速、频繁管理网络设备快照。 我在rConfig的两个文件中找到了两个远程命令执行(RCE)漏洞,第一个文件为`ajaxServerSettingsChk.php`,攻击者可以通过`rootUname`参数发送精心构造的一个GET请求,触发未授权RCE漏洞。`rootUname`参数在源文件第2行中定义,随后会在第13行传递给`exec`函数。攻击者可以将恶意系统命令插入该参数中,在目标服务器上执行。该漏洞利用和发现过程比较简单,下文中我将介绍如何发现并利用该漏洞。 第二个漏洞位于`search.crud.php`文件中,存在RCE漏洞。攻击者可以发送精心构造的GET请求触发该漏洞,请求中包含两个参数,其中`searchTerm`参数可以包含任意值,但该参数必须存在,才能执行到第63行的`exec`函数。 我像往常一样想寻找RCE漏洞,因此我使用自己开发的一个[python脚本](https://github.com/mhaskar/RCEScanner)来搜索所有不安全的函数。 ## 0x01 未授权RCE漏洞 运行脚本后,我看到了一些输出结果。检查文件后,我发现有个文件名为`ajaxServerSettingsChk.php`,具体路径为`install/lib/ajaxHandlers/ajaxServerSettingsChk.php`,部分代码如下: ```php