rConfig v3.9.2 authenticated and unauthenticated RCE (CVE-2019-16663) and (CVE-2019-16662)
关于rConfig
rConfig是一个开放源码的网络设备配置管理实用工具,用于网络工程师对网络设备的配置。
图1
关于漏洞的利用
我在两个文件中分别发现了两个远程代码执行漏洞。第一个是ajaxServerSettingsChk.php,攻击者可以通过rootUname参数发送精心构造的一个GET请求,触发未授权RCE漏洞。rootUname参数在源文件第2行中定义,随后会在第13行传递给exec函数,攻击者可以构造参数接收内容实现让操作系统执行恶意命令。这个漏洞很容易利用和发现,后面的篇幅中我将介绍如何发现并利用这个漏洞。
第二个漏洞是在search.crud.php发现的,这文件需要通过身份验证才能触发远程代码执行漏洞。这个漏洞可以通过构造一个包含有两个参数的GET请求触发,
其中searchTerm参数可以包含任意值,但该参数必须存在,才能执行到第63行的exec函数。
跟我平常找RCE漏洞的方法一样,因此我使用自己开发的一个Python脚本(https://github.com/mhaskar/RCEScanner)来列出有哪些不安全的函数。这个脚本在先前的案例研究中曾经使用过。
未授权RCE分析
运行这个脚本过后输出了一些结果,我开始分析这些输出结果并且注意到路径为install/lib/ajaxHandlers/
的ajaxServerSettingsChk.php
文件,部分代码如下: