Grave falla in AdMentor

Qualche suggerimento di Roberto Abbate (Risorse.net) su come aggirare una grave falla che affligge un noto programma per gestire banner

Roma - Gent.le redazione di Punto-Informatico,
vi scrivo per segnalarvi una grave falla che colpisce AdMentor, un diffusissimo script per la gestione di banners online. Realizzato sia con le Asp, sia con Php, soffre di un buco per colpa del quale, chiunque può accedere al Pannello di controllo come amministratore, con le problematiche che si possono immaginare.

Caricando infatti la pagina di Login (qualcosa tipo nomesito.it/admentor/admin/login.asp o nomesito.it/phpadmentor/admin/index.php a seconda delle versioni) e inserendo la stringa

' or ''='
Come username e password, si riesce ad accedere come amministratore. È una stringa famosa per chi progetta applicazioni protette, ma evidentemente chi ha realizzato AdMentor non vi ha fatto attenzione.

Consiglio caldamente a chiunque utilizzasse questo script, di risolvere il problema quanto prima, modificando la stringa di connessione al database, oppure intercettando tale stringa nel seguente modo:

If sUser = "' or ''='"
Then
Response.redirect "pagina di login"
End
If

Da inserire nel file admentorsecurity.asp (prima dell connessione al database), presente nella directory include.

Anche con Php, risolvere il problema non è difficile, modificando la stringa di connessione al database oppure aggiungendo queste righe:

if ($username == "' or ''='")
{
header("location: pagina di login");
}

Il codice va inserito inclogin.php, presente nella cartella admin.

Un caro saluto!

Roberto Abbate
Web developer di Risorse.net - Comunità virtuale per webmaster

Update: Alcuni lettori ci hanno scritto facendo notare che la soluzione qui proposta funziona solo se la stringa inserita come userid è esattamente uguale a "' or ''='": se però si inserisce la stessa stringa nello userid con qualche spazio alla fine, il problema si ripresenta.

A tal proposito Roberto Abbate ci ha inviato questa integrazione alla sua lettera.

"Per evitare che aggiungendo o togliendo spazi si riesca comunque ad accedere al sistema di amministrazione, modificate la sintassi proposta in precedenza con la seguente:

Codice ASP
----------
If InStr(sUser,"=") Then
Response.Redirect "pagina di login"
End If

Codice PHP
----------
if (stristr($username,"=")) {
header("location: pagina di login");
}

In questo modo, verificando la presenza dell'uguale nella user, si potranno bloccare molti tentativi di ingresso non autorizzato".


L'autore ricorda che questa non è una patch ufficiale né definitiva e, pertanto, potrebbe lasciare aperte altre possibilità d'incursione.
TAG: sicurezza
10 Commenti alla Notizia Grave falla in AdMentor
Ordina