*Descriere:
Metin2 Mailbox SQL Injection Fix - MAILBOX_BACKUP
Acest fix rezolva o vulnerabilitate SQL Injection din sistemul Mail box, in functia MAILBOX_BACKUP. Problema apare deoarece titlul, mesajul si numele expeditorului sunt introduse direct in query-ul SQL fara EscapeString.
- protejeaza query-ul de caractere SQL speciale;
- securizeaza campurile title, message si sender;
- previne erori SQL la mesaje care contin apostrof;
- reduce riscul executarii unor query-uri neasteptate.
*Link download / Code:
Deschide db/src/ClientManager.cpp si cauta functia:
In aceasta functie cauta query-ul INSERT INTO mailbox construit cu snprintf.
Inainte de construirea query-ului trebuie securizate cu EscapeString urmatoarele valori:
Nu trimite aceste valori direct in query folosind %s fara escaping.
Pentru implementare, foloseste acelasi mod de lucru cu EscapeString care exista deja in:
Dupa escaping, in query-ul INSERT INTO mailbox trebuie folosite valorile escape-uite in locul string-urilor originale.
Problema poate fi verificata simplu trimitand un mail care contine caracterul:
Fara fix, acest caracter poate strica query-ul generat de MAILBOX_BACKUP si poate produce erori SQL.
Nota: Materialul original nu contine snippet-ul complet pentru implementarea cu EscapeString, ci doar indica faptul ca trebuie aplicata aceeasi metoda folosita deja in log.cpp. De aceea, codul exact trebuie adaptat la implementarea CDBManager si structura Mailbox din sursa ta.
Metin2 Mailbox SQL Injection Fix - MAILBOX_BACKUP
Acest fix rezolva o vulnerabilitate SQL Injection din sistemul Mail box, in functia MAILBOX_BACKUP. Problema apare deoarece titlul, mesajul si numele expeditorului sunt introduse direct in query-ul SQL fara EscapeString.
- protejeaza query-ul de caractere SQL speciale;
- securizeaza campurile title, message si sender;
- previne erori SQL la mesaje care contin apostrof;
- reduce riscul executarii unor query-uri neasteptate.
*Link download / Code:
Deschide db/src/ClientManager.cpp si cauta functia:
Cod: Selectaţi tot
void CClientManager::MAILBOX_BACKUP()In aceasta functie cauta query-ul INSERT INTO mailbox construit cu snprintf.
Inainte de construirea query-ului trebuie securizate cu EscapeString urmatoarele valori:
Cod: Selectaţi tot
title
message
whoNu trimite aceste valori direct in query folosind %s fara escaping.
Pentru implementare, foloseste acelasi mod de lucru cu EscapeString care exista deja in:
Cod: Selectaţi tot
log.cppDupa escaping, in query-ul INSERT INTO mailbox trebuie folosite valorile escape-uite in locul string-urilor originale.
Problema poate fi verificata simplu trimitand un mail care contine caracterul:
Cod: Selectaţi tot
'Fara fix, acest caracter poate strica query-ul generat de MAILBOX_BACKUP si poate produce erori SQL.
Nota: Materialul original nu contine snippet-ul complet pentru implementarea cu EscapeString, ci doar indica faptul ca trebuie aplicata aceeasi metoda folosita deja in log.cpp. De aceea, codul exact trebuie adaptat la implementarea CDBManager si structura Mailbox din sursa ta.




