diff --git a/README.md b/README.md index ffb3b3d..0d3aa51 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ - [CVE-2019-7609-kibana低于6.6.0未授权远程代码命令执行](./CVE-2019-7609-kibana低于6.6.0未授权远程代码命令执行.md) - [ecologyExp.jar-泛微ecology OA系统数据库配置文件读取](./tools/ecologyExp.jar) - [freeFTP1.0.8-'PASS'远程缓冲区溢出](./freeFTP1.0.8-'PASS'远程缓冲区溢出.md) +- [rConfig v3.9.2 RCE漏洞](./rConfig%20v3.9.2%20RCE漏洞.md) ## 提权辅助相关 diff --git a/books/rConfig v3.9.2 RCE漏洞分析.pdf b/books/rConfig v3.9.2 RCE漏洞分析.pdf new file mode 100644 index 0000000..d77c764 Binary files /dev/null and b/books/rConfig v3.9.2 RCE漏洞分析.pdf differ diff --git a/rConfig v3.9.2 RCE漏洞.md b/rConfig v3.9.2 RCE漏洞.md new file mode 100644 index 0000000..1bf5cac --- /dev/null +++ b/rConfig v3.9.2 RCE漏洞.md @@ -0,0 +1,167 @@ +## 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 +