nginxwebui-RCE
一、漏洞概述
1.1漏洞简述
- 漏洞名称:nginxwebui-RCE
- 漏洞类型:RCE
- 漏洞威胁等级:高危
- 影响范围:version <=3.5.0
- 利用条件:默认配置
1.2组件描述
nginxWebUI是一款图形化管理nginx配置的工具,能通过网页快速配置nginx的各种功能,包括HTTP和TCP协议转发、反向代理、负载均衡、静态HTML服务器以及SSL证书的自动申请、续签和配置,配置完成后可以一键生成nginx.conf文件,并控制nginx使用此文件进行启动和重载。
1.3漏洞描述
nginxWebUI后台提供执行nginx相关命令的接口,由于未对用户的输入进行过滤,导致可在后台执行任意命令。并且该系统权限校验存在问题,导致存在权限绕过,在前台可直接调用后台接口,最终可以达到无条件远程命令执行的效果。
二、漏洞复现
2.1应用协议
HTTP
2.2环境搭建
利用(10.65.181.89)docker搭建环境如下:
2.3漏洞复现
该漏洞触发接口点为后台功能点,但攻击者不需要用户验证即可访问该url触发漏洞
插入payload /AdminPage/conf/runCmd?cmd=cat/etc/passwd%26%26echo%20nginx
通过响应包可以查看命令执行的结果。
三、漏洞分析
3.1技术背景
项目基于C语言开发
3.2代码分析
nginxWebUI后台提供执行nginx相关命令的接口(/AdminPage/conf/runCmd),由于未对用户的输入进行过滤,导致可在后台执行任意命令。
并且该系统权限校验存在问题,导致存在权限绕过,在前台可直接调用后台接口,最终可以达到无条件远程命令执行的效果。
3.3 流量分析
GET请求,存在漏洞url为/AdminPage/conf/runCmd
参数cmd后跟随RCE_payload最后紧接&&nginx
,响应体body部分回显敏感信息
四、漏洞检测
4.1组件版本自检
查看nginxwebui版本是否<=3.5.0
4.2漏洞检测规则、插件编写思路
*4.3 漏洞检测规则、插件编写思路*
以下为该漏洞请求包特征
1./AdminPage/conf/runCmd后跟RCE_payload后紧跟&&nginx
使用snort规则编写:
alert tcp any any -> any any (pcre:"/AdminPage\/conf\/runCmd?cmd=(cat|pass|bin|etc|id|name|who|sys|echo|usr|ping)/i";content:"&&echo"content:"nginx";msg:"您已受到 CVE-2023-3224 漏洞攻击";sid:1000001;)
4.4研判建议
如果检测到响应包中出现关键信息则判断攻击成功。
五、防范建议
5.1官方修复建议
官方已经发布了最新版本来修复该漏洞,请升级至最新版本。
5.2临时修复建议
该漏洞属于命令拼接漏洞,所以可使用WAF进行防护。但是低版本同时存在权限绕过问题,该问题使用防护设备无法缓解。建议如非必要,不要将该系统暴露在互联网上。
由于官方过滤用户输入的方式并不严格,导致后台可能依旧存在命令执行的风险,可通过使用强口令降低风险。