Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/apache2/vhosts/blog/wp-content/plugins/wp-syntax/wp-syntax.php on line 383

Attacchi da manuale


Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/apache2/vhosts/blog/wp-content/plugins/wp-syntax/wp-syntax.php on line 383

Non mi dilungherò in descrizioni manualistiche di codice vulnerabile e relativi attacchi. Volevo solo fare un rapido appunto su del codice che ho recentemente visto prodotto da una società che fornisce clienti molto grossi e con notevole reputazione da difendere. Quando uno si trova davanti a qualcosa tipo

function validateUser($username, $password) {
  $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  // Resto del codice irrilevante...
}

la prima cosa che pensa è provare a usare admin'# come nome utente e qualsiasi cosa come password (anche nulla, eventualmente). La seconda cosa che succede è che l’attacco riesce. La terza cosa è che, per dire, il sito viene defacciato, o gli iscritti alla newsletter si vedono recapitare quintali di spam da una fonte che ritengono legittima. Con un attacco che ormai non trova più spazio nemmeno nelle introduzioni dei manuali di sicurezza.

A me, quando vedo queste cose, mi girano le palle. Fortissimo.

3 commenti

Tommy dice:

Io invece non mi sorprendo più :-P
Ne ho visto uno giusto l’altro giorno, e mi sembra situazione piuttosto diffusa.
Se pensi che uno degli innumerevoli attacchi (riusciti) ad un servizio Sony l’anno scorso ha portato al furto di migliaia di account proprio con un’SQL Injection…

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.