Back to top

Autore Topic: Protezione da SQL injection e LFI  (Letto 12105 volte)

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Protezione da SQL injection e LFI
« il: 31 Mag 2010, 21:43:54 »
ciao,
  dato che bugSearch.net mi ha fatto venire l'angoscia ho scritto un plugin per proteggere il sito dai vari attacchi citati:

http://extensions.joomla.org/extensions/access-a-security/site-security/12731

questo plugin intercetta le richieste inviate a joomla e blocca i principali attacchi SQL injection e LFI (local file inclusion) impedendo che arrivino al componente vulnerabile.

Domande e spiegazioni in coda a questo post, non sul mio sito (tutto ciò che va al mio sito si presume a pagamento  ;D )

ciao a tutti,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline guido57

  • Appassionato
  • ***
  • Post: 271
  • Sesso: Maschio
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #1 il: 31 Mag 2010, 22:33:51 »
Installato plugin!
Grazie mille.
Guido
Transire suum pectus mundoque potiri [Ἀρχιμήδης]

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #2 il: 01 Giu 2010, 08:14:14 »
Nota:
questo plugin intercetta i più comuni attacchi, non OGNI attacco.
deve essere pertanto inteso come un aiuto, non come una soluzione definitiva.

ps: è uscita la versione 0.98a con qualche minor fix...

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline guido57

  • Appassionato
  • ***
  • Post: 271
  • Sesso: Maschio
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #3 il: 01 Giu 2010, 19:54:39 »
Nota:
questo plugin intercetta i più comuni attacchi, non OGNI attacco.
deve essere pertanto inteso come un aiuto, non come una soluzione definitiva.

ps: è uscita la versione 0.98a con qualche minor fix...

ciao,
marco
Si certo, non c'è la pretesa di avere una soluzione definitiva. Certamente però tra tutte le "azioni difensive" apprese seguendo i post relativi alla sicurezza e con l'aiuto di lavori come il tuo ...
Aggiornamento fatto!
Guido
Transire suum pectus mundoque potiri [Ἀρχιμήδης]

Offline makjla

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #4 il: 04 Ott 2010, 13:04:27 »
installato anch'io :) sicuramente è un aiuto in più, grazie!

Offline joored

  • Esploratore
  • **
  • Post: 129
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #5 il: 05 Ott 2010, 20:55:20 »
Grazie mmleoni,
io l'ho installato ma mi chiedo
come va configurato?
Io ho lasciato la configurazione di default ad eccezione di:

- Send Email Alert on injection/inclusion = SI
- Mail to notify attack = mia@mail.it

Per il resto è meglio lasciare tutto immutato?
Inseguo chi fugge e fuggo chi mi insegue. I paradossi della vita.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #6 il: 16 Ott 2010, 22:36:24 »
sì, le impostazioni di base sono più che adeguate, se non comprendi bene il significato delle opzioni è meglio non toccorle.

ciao,
marco

ps: scusate la latitanza, ma mi hanno messo sotto con il lavoro  ;)
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline @kshym

  • Esploratore
  • **
  • Post: 89
  • Sesso: Maschio
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #7 il: 24 Ott 2010, 16:44:11 »
Ho instalato su tutti siti, Grazie
da un sito, che viene attacato ricevo questo messaggio
------------------------
** Local File Inclusion [GET:task] => ../../../../../../../../../../../../../../../proc/self/environ\0
** Local File Inclusion [REQUEST:task] => ../../../../../../../../../../../../../../../proc/self/environ\0

**PAGE / SERVER INFO


*REMOTE_ADDR :
203.94.243.59

*HTTP_USER_AGENT :
libwww-perl/5.805

*REQUEST_METHOD :
GET

*QUERY_STRING :
option=com_myblog&Itemid=43&task=../../../../../../../../../../../../../../../proc/self/environ%00



** SUPERGLOBALS DUMP (sanitized)


*$_GET DUMP
 -[option] => com_myblog
 -[Itemid] => 43
 -[task] => proc/self/environ\0


*$_POST DUMP


*$_COOKIE DUMP


*$_REQUEST DUMP
 -[option] => com_myblog
 -[Itemid] => 43
 -[task] => proc/self/environ\0
 -[tmpl] => component
---------------------------------------
cinceramente capisco poco cosa è
mi potete gentilmente ad aiutare come capire questo messaggio, e prima di tutto come capire da chi, o da dove viene attacato il sito
Grazie di nuovo

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #8 il: 26 Ott 2010, 22:20:26 »
ciao,
 è un attacco automatizzato (USER_AGENT :libwww-perl/5.805) volto ad una vulnerabilità di com_myblog che non filtra correttamente la path delle librerie da includere. se il server è configurato correttamente gli attacchi di questo tipo (LFI) non hanno effetto.

rinuncia a capire chi è: tanto sarà il solito ragazzino imbecille.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline @kshym

  • Esploratore
  • **
  • Post: 89
  • Sesso: Maschio
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #9 il: 29 Ott 2010, 17:09:09 »
Grazie Marco, mi può suggerire qualche cosa da leggere per approfondire?
Sinceramente ho trovato un sacco di materiale, ma non so da dove cominciare
Grazie di nuovo

Offline ErikaB

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Femmina
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #10 il: 02 Nov 2010, 00:33:04 »
visto che sto ancora risolvendo un problema con un virus, non l'ho ancora installato ma ti ringrazio anche io per il contributo, una precauzione in più non farà mai male :)
l'unione fa la forza..
domandare è lecito, rispondere è cortesia..

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #11 il: 03 Nov 2010, 07:38:04 »
@@kshym  ;D

mi spiace, ma non saprei indicare un testo specifico, posso però dire che qualcosa si trova su internet come spiegazione... per il resto per capire come funziona un attacco LFI e come prevenirlo è necessario essere dei sistemisti.

ciao,
marco

=== edited
ps: sul mio sito trovi un esempio spiegato e commentato di un attacco sqli andato a buon fine...

« Ultima modifica: 03 Nov 2010, 07:46:36 da mmleoni »
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline @kshym

  • Esploratore
  • **
  • Post: 89
  • Sesso: Maschio
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #12 il: 05 Nov 2010, 11:33:34 »
Ciao, oggi, è stato attacato un altro sito, l'informazione che ho ricevuto è diversa da quali che erano prima, una di quali avevo postato qua.
---------------------------
** Local File Inclusion [GET:option] => ../../../../../proc/self/environ
** Local File Inclusion [REQUEST:option] => ../../../../../proc/self/environ

[**removed**]
------------------------
P.S. Grazie per il suggerimento cerco leggere il tuo sito, Grazie di nuovo
« Ultima modifica: 06 Nov 2010, 16:54:27 da mmleoni »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #13 il: 06 Nov 2010, 17:04:26 »
@all
non incollate il dump dell'output del plugin, del resto la cosa è stata già più che discussa.
in questa sezione del forum potete trovare molteplici discussioni che affrontano gli attacchi segnalati.

alla fin dei conti tenete presente che se arriva la mail di avviso l'attacco è stato neutralizzato e quindi non ci sono problemi veramente gravi ma:

1.
verificate che il componente oggetto dell'attacco sia realmente installato sul vostro sito (in massima parte si tratta di attacchi automatizzati, si spara nel mucchio sperando di colpire qualcuno). verificate la presenza di aggiornamenti.

2a. attacco LFI (Local File Inclusion):
se il server è ben configurato tipicamente non hanno effetto. comunque segnalate la cosa all'assistenza.

2b. attacco sqli (SQL injection):
aggiornate/correggete/rimuovete il componente/modulo incriminato.

qualsiasi altro intervento richiede competenze abbastanza elevate...

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

mau_develop

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #14 il: 06 Nov 2010, 18:44:53 »
[REQUEST:option] => ../../../../../proc/self/environ
--------------------------------------------------------------------
... se questa funzionasse spengo il pc, prendo la macchina e vado a picchiare il sysadmin :) :)

M.

bsaett

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #15 il: 20 Gen 2011, 17:59:53 »
Salve,

mi chiedevo se questo plugin svolge una funzione simile rispetto a sh404sef (versione non commerciale), visto che quell'estensione dichiara di proteggere da script iniecton, base iniection, variabili illegali e simili. Grazie per eventuali delucidazioni in merito.  :)

mau_develop

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #16 il: 20 Gen 2011, 19:25:21 »
quell'estensione dichiara di proteggere da script iniecton, base iniection, variabili illegali e simili
---------------------------------------------------------------------------------------
Non so cosa faccia quell'extensions ma visto che serve per il sef sicuramente farà un parsing dell'uri per ricavare le info della request dall'url facilitato.
Stessa cosa fa il plugin di Marco e credo tutti gli altri.

Le soluzioni di sicurezza devono avere (pochi) predeterminati obbiettivi e soprattutto devono rallentare il processo il minor tempo possibile. E' un problema comune perchè non può essere lasciato al background ma deve per forza essere un passaggio obbligato prima della restituzione di qualsiasi codice. Comunque il tutto deve avvenire in un plugin di tipo system, non avrebbe senso farlo altrove.

Per cui direi, se hai già quell'extensions, visto che garantiscono, è superfluo far fare il lavoro doppio, altrimenti è un ottima efficace e leggera soluzione.

M.

bsaett

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #17 il: 20 Gen 2011, 19:50:23 »
Grazie, sei stato chiarissimo!

Offline Estella

  • Nuovo arrivato
  • *
  • Post: 12
  • Sesso: Femmina
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #18 il: 04 Feb 2011, 15:42:57 »
Ciao Marco,
oggi mi è arrivata la mail che ti copio sotto (in realtà sono 4 mail tutte uguali).
Non capisco però in che modo volevano entrare.
Non è che mi spieghi meglio quello che è successo?
Grazie
Estella

** Local File Inclusion [GET:page] => ../../../../../../../../../../../../../../../../../../../proc/self/environ\0
** Local File Inclusion [REQUEST:page] => ../../../../../../../../../../../../../../../../../../../proc/self/environ\0

[** rimosso dal moderatore **]
« Ultima modifica: 06 Feb 2011, 18:17:37 da mmleoni »

mau_develop

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #19 il: 04 Feb 2011, 16:02:04 »
...la stessa cosa dei post precedenti... nulla se non un tentativo a casaccio di un 'iniection di codice arbitrario.
se leggi dall'inizio capisci.

M.

Offline Estella

  • Nuovo arrivato
  • *
  • Post: 12
  • Sesso: Femmina
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #20 il: 04 Feb 2011, 19:35:05 »
Grazie per la risposta.
Ancora una domanda che spero non sia troppo stupida....
Se io mi costruisco un modulo che gestisce dati (che sono salvati in tabelle da me create), seguendo gli standard riportati nelle guide di joomla, nessuno sa dell'esistenza di questo modulo e quindi nessuno sa come è scritto il codice. Quindi dovrebbe essere difficile fare attacchi attraverso questi moduli.
I moduli invece pubblici, possono essere analizzati da tutti e quindi gli hacker possono scoprire le falle e sfruttarle.
E' giusto questo ragionamento?

mau_develop

  • Visitatore
Re:Protezione da SQL injection e LFI
« Risposta #21 il: 04 Feb 2011, 20:26:55 »
si, in linea di massima direi di si, però diciamo che

---------------------
Se io mi costruisco un modulo che gestisce dati (che sono salvati in tabelle da me create), seguendo gli standard riportati nelle guide di joomla,
---------------------

non hai egualmente problemi di vulnerabilità, ogni extensions è quello che tu hai descritto di voler fare.
In linea di massima ti direi anche che se controlli sempre che tutto ciò che non è generato runtime es:

$pippo=0;
for($pippo=0; bla bla

non è necessario fare un casting, la variabile nasce e muore nel punto in cui viene eseguita.

ma tutto ciò che viene dall'esterno va controllato, ti aspetti una cosa e quella deve essere.... un numero un numero, di tot cifre, positivo o negativo, una stringa  -> solo caratteri, max tot, no formattazione o parole riservate etc.

adesso poi dico una cosa che non dovrei dire, ma in fondo è abbastanza vera; tranne castronate micidiali.... col plugin di mmleoni sei anche abbastanza protetta da errorini, poichè molti pattern di iniezione vengono comunque verificati a monte... certo che se mi spari un post o un get diretto nella query o in un include ... hai voglia a fare plugin :) ;)

M.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #22 il: 06 Feb 2011, 18:21:49 »
non inserite tutto il codice di segnalazione: di che si tratta è scritto nella prima riga.
si tratta di un tentativo di richiamare la shell dei comandi per farle eseguire codice passato nella richiesta http.

@mau
tu hai idea di quanti (pseudo)sysadmin dovresti picchiare?

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline Naomi

  • Nuovo arrivato
  • *
  • Post: 35
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #23 il: 11 Feb 2011, 16:17:16 »
In 24 ore ho ricevuto le email di avviso di 5 attacchi
4 sono LFI che non riporto come richiesto dal moderatore.
Il 5°, però, è diverso. Ovviamente per me è incomprensibile ma spero che possa essere utile a qualcuno che ne capisce...

Codice: [Seleziona]
** Union Select [GET:firstCode] => 1 and 0 union select 1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7 from jos_users limit 20--
** Table name in url [GET:firstCode] => 1 and 0 -- 1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7 from jos_users limit 20--
** Union Select [REQUEST:firstCode] => 1 and 0 union select 1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7 from jos_users limit 20--
** Table name in url [REQUEST:firstCode] => 1 and 0 -- 1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7 from jos_users limit 20--

[... deleted by mod ...]

*REQUEST_METHOD :
GET

*QUERY_STRING :
option=com_ezautos&Itemid=49&id=1&task=helpers&firstCode=1+and+0+union+select+1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7+from+jos_users+limit+20--

[... deleted by mod ...]

« Ultima modifica: 11 Feb 2011, 18:25:37 da mmleoni »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Protezione da SQL injection e LFI
« Risposta #24 il: 11 Feb 2011, 18:23:01 »
questo invece è un tentativo di recuperare la password degli utenti amministrativi tramite SQL injection. vi è però da dire che solo le versioni di joomla pre 1.5.16 sono vulnerabili a questo specifico attacco.

ciao,
marco

ps: bastano le prime righe!!!
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif