Back to top

Autore Topic: Soluzione attacco SQL Injection  (Letto 12128 volte)

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Soluzione attacco SQL Injection
« il: 26 Ago 2011, 11:24:24 »
Salve a tutti,

vorrei condividere la soluzione ad un attacco SQL Injection che ho subito svariate volte sul mio sito.
Soluzione trovata grazie ad un consiglio di un amico ingegnere informatico.

Avevo precedentemente risolto il problema ma per "metà".

Infatti tramite ricerca col software "Notepad ++" ero riuscito a trovare quale era il codice malevolo che era stato iniettato all'interno di alcuni file del mio sito (ad esempio il file index.php che si trova nella root del server che ospita il sito stesso).

nel mio caso il codice era il seguente:
**********************************************************************************
Facendo una ricerca all'interno dei files più importanti del mio sito avevo eliminato manualmente tale stringa da agni file in sui si presentava, perdendo anche un sacco di tempo.
Credevo di aver ripulito tutto e quindi risolto ed invece il problema si ripresentava. Il sito era anche stato bannato da google con un messaggio di warning per i navigatori. (era un delirio!).

Comunque la soluzione è questa:

Entrare nell'amministrazione del prorio sito Jooma.
Disabilitare tutti i plugin, componenti e moduli che hanno dal lato sito dei form da compilare per gli utenti.

[infatti è tramite i form che vengono inserite delle stringhe di comando che causano i code injection.
I plugin scadenti non effettuano alcun controllo sui dati immessi scrivendo il tutto all'interno del nostro database che poi verrà in qualche modo richiamato successivamente.
Ad esempio se all' interno di un ipotetico campo "nome utente" viene inserito un codice particolare, questo andrà ad inserire direttamente nel database del nostro sito quel codice bastardo noto come SQL Injection!!]

OK. Superato questo passaggio preventivo, la seconda operazione sarà la seguente:
Tramite un qualsiasi software che permette di trasferire file attraverso il protocollo FTP (tipo Filezilla)
copiamo tutti i file e cartelle, che sono nella cartella che si trova sul server remoto che ospita il nostro sito, sul nosto pc locale.

terza fase:
tramite il software "notepad++", facilmente reperibile sul web, effettuare un "CERCA/TROVA NEI FILE..." (che permette di cercare un testo all'interno di tutti i files contenuti in una determinata cartella) selezionando la cartella che ospita tutti i files del sito che abbiamo copiato sul pc locale.

Quindi nel campo Trova inseriamo il codice malevolo che avremo precedentemente scovato molto probabilmente nel file index.php e spuntiamo la voce "solo parole intere".
Ora clicchiamo "Trova tutti".
Se siamo infetti visualizzeremo una sfilza di files infetti con quel codice inserito.
Verificata " l'infezione " procediamo con la medesima operazione ma questa vola anziché cliccare su "Trova tutti" clicchiamo su " Sostituisci nel file" dopo aver inserito uno spazio nel campo "Sostituisci con" .
A questo punto il nostro "simpatico" codice sarà sostituito da un bello spazio vuoto!!

Operazione successiva trasferire (IMPORTANTE!!: sovrascrivendo) tutti i file del nostro sito da locale a remoto sempre tramite software FTP.

Fatto ciò effettuare due operazioni di sicurezza:
cambiare la password sia dell'amministratore di joomla sia del database del nostro sito.

Ultima operazione:
Installiamo il plugin Akeeba Backup( software che permette di effettuare appunto un backup completo sia del sito che del database) sul nostro sito e facciamo appunto il backup.
Effettuato il backup copiamo il file stesso di backup sul nostro pc in locale per avere una copia sicura ed evitare che lo stesso venga sovrascritto da un backup successivo.

PS. Logicamente se pensiamo che i plugin che abbiamo disattivato precedentemente possano essere la causa del problema sostituiamoli con altri plugin più sicuri

FINE :)

PS.2: Facciamo anche un controllo antivirus sul nostro pc locale.. non si sa mai.. potremmo essere noi stessi gli "untori" del nostro sito!!!
**************************************************
come da suggerimento di mau_develop
Disinstalliamo i componenti o plugin che pensiamo non siano sicuri
e oltre alle password dell'amministrazione e del database cambiamo anche la password FTP e teniamo sempre aggiornato il sito e conseguenti plugin.
sempre su suggerimento di mau_develop controllare nelle cartelle che contengono immagini che non vi siano file strani (cioè con estensioni di file di tipo non immagine), io per esempio nella cartella del mio sito ho trovato un bel img.php con relativo codice malevolo all'interno, in questo caso ho eliminato tale file.
 
« Ultima modifica: 26 Ago 2011, 13:55:26 da mauro77a »

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #1 il: 26 Ago 2011, 11:58:16 »
l'unica soluzione alle sqlinj è tenere aggiornato joomla.

poi un po' di inesattezze:

-Disabilitare tutti i plugin, componenti e moduli che hanno dal lato sito dei form da compilare per gli utenti.
----------------------
disabilitarli non serve a nulla, esistono e sono usabili

- Entrare nell'amministrazione del prorio sito Jooma.
----------------------------------
proprio no... se prima non sei + che sicuro di non essere tu la causa di infezione o che ci sia qualche grabber anche lì

I plugin scadenti non effettuano alcun controllo sui dati immessi
------------------------------------
i plugin non effettuano no nessun controllo, semmai sarà il componente o il modulo. Scadenti non vuol dire nulla, se sono vulnerabili o sconosciuti non vanno installati e basta.

- stai parlando di sqlinj e non mi parli del database?  sql che cosa è usato per fare??
infatti non è un sql injection ....

Quindi nel campo Trova inseriamo il codice malevolo che avremo precedentemente scovato
-----------------------------------------------------
-quindi se io spezzetto il codice in + files non trovo nulla di uguale ma funziona tutto ugualmente.
- quindi se io ci metto un bel codice php da backdoor notepad non trova nulla...

Fatto ciò effettuare due operazioni di sicurezza:
cambiare la password sia dell'amministratore di joomla sia del database del nostro sito.
-------------------------------------------------------------------
... e quella ftp?

M.


Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #2 il: 26 Ago 2011, 12:08:01 »
E' facile criticare... io cerco di condividere per aiutare chi come me, fino ad ora non ha trovato soluzioni valide.

Se qualcuno ha qualcosa da aggiungere lo faccia, ma non critichi se qualcuno non è preparato come "lui".... piuttosto scriva come risolvere il problema, se lo sa fare.
Grazie!


mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #3 il: 26 Ago 2011, 12:28:34 »
già fatto, se guardi il post in testa a qs sezione.... ;)

aiutare le persone indicando strade sbagliate è un concetto giapponese.

M.

ma non critichi se qualcuno non è preparato come "lui"
--------------------------------------------------------------------------
...non mischiare le cose...
io critico le inesattezze che dici, non la tua preparazione... non so nemmeno chi sei.. come potrei?
« Ultima modifica: 26 Ago 2011, 12:35:29 da mau_develop »

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #4 il: 26 Ago 2011, 12:37:20 »
Lo avevo già letto... evidentemente non c'è alcun dettaglio su come effettuare tante operazioni.
Altrimenti anzichè inserire il mio topic ti avrei risposto scrivendo grazie mau_develop, grazie al tuo topic ho risolto tutti i miei problemi!
mi dispiace dirlo ma quello che hai scritto è un pò superficiale :-\

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #5 il: 26 Ago 2011, 12:43:59 »
non c'è alcun dettaglio su come effettuare tante operazioni
---------------------------------------------------
mi verrebbe da chiederti quali... ma..penso di capirlo...

come trovare il codice malevolo
è la cosa più inutile del mondo, se sovrascrivi con una nuova joomla ottieni files puliti e molto più sicuri di quello che hai fatto tu... sicuramente quindi questo non l'ho suggerito

lo stesso vale per le estensioni.

in joomla è tutto nel db quindi non devi fare tutto il casino che hai fatto ;)

M.

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #6 il: 26 Ago 2011, 12:53:57 »
 è proprio la gestione del database il problema, operazioni sulle tabelle del database non sono proprio alla portata di tutti, quindi se non viene scritto dettagliatamente come comportarsi qualche sprovveduto che non ha una copia database o che non sa come ripristinarlo potrebbe perdere tutto... cerco di pensare sempre ai problemi che potrebbe incontrare chi ne sa poco di joomla piuttosto a chi è già ferrato.. ;)

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #7 il: 26 Ago 2011, 13:07:54 »
ma non ho capito perchè tocchi il database, tu continui a parlare di sqlinjection ma non è una sqlinection, il database non viene quasi sicuramente toccato.

Praticamente tu non spieghi come fae il backup... dici "usate Akeba" ... e anche qs suggerimento non va bene perchè phpmyadmin ti fa tutto con un click... è Akeba che può introdurre caxate... infatti se leggi i post su questo forum si sconsiglia l'uso di Ackeba backup perchè spesso è molto più ingestibile che fare tuuto da interfaccia.

M.

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #8 il: 26 Ago 2011, 13:17:41 »
è vero non è un vero sql injection, ma non saprei come definirlo. non sapevo che akeeba non fosse poi così sicuro, ma mi ha tolto tante volte dai guai..
Purtroppo non sono molto pratico di phpmyadmin, quindi oltre le oprerazioni di base non vado

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #9 il: 26 Ago 2011, 13:30:20 »
non è un vero sql injection
-----------------------------------
no no ...non è prorpio un sqlinjection in sql non viene iniettato proprio nulla

cosa è lo puoi dire quando sai come lo hanno fatto, es lo potrebbe fare anche il tuo amico per scherzo con le tue credenziali e non sarebbe nessuna vulnerabilità

Sicuramente parte da una var non filtrata ma nessuna estensions va a scrivere codice nei file index... nemmeno se hai le credenziali... quindi ci devono essere altri problemi correlati... permessi sbagliati... configurazioni del server non proprio sicure...

Purtroppo non sono molto pratico di phpmyadmin, quindi oltre le oprerazioni di base non vado
--------------------------------------------------------------------------------------
lo apri -> clicchi su esporta in alto -> solitamente non tocchi nulla -> vai in basso -> click ... e scarichi il file

lo rinomini , crei un nuovo db e provi se funziona... e ci sbatti la testa finchè non capisci.

M.

PS ...un ultimo consiglio... Non giocare troppo con quel codice in locale... non gli serve molto per partire... basta un click .. è js

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #10 il: 26 Ago 2011, 13:51:20 »
ciao mauro77a,
 non mi fraintendere, apprezziamo il tuo sforzo e lo spirito è sicuramente quello giusto per il forum, ma il tuo post corre in rischio di creare più problemi, agli utenti inesperti, di quanti ne voleva risolvere.

a parte tutte le confusioni e le imprecisioni, alla fine rifletti su questo: non hai indicato una soluzione. ovvero non hai indicato come trovare il REALE punto di ingresso dell'attaccante, ed anche la tua soluzione, come indicato da maurizio, non è detto che abbia rimosso tutto il codice malevolo, che tu presumi essere sempre lo stesso, errore che difficilmente un hacker commette.

in questi casi conviene reinstallare tutto (joomla, moduli, componenti, plugins) e ributtare su il db salvato (dopo una controllatina).

ciao,
marco




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

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #11 il: 26 Ago 2011, 13:52:36 »
si, fino a scaricare e creare un nuovo db ci sono.
Ma più volte ho provato ad importare dati dal db in locale su quello remoto ed ho ricevuto un error..

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #12 il: 26 Ago 2011, 13:57:34 »
Vs mmeloni: è vero  ???

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #13 il: 26 Ago 2011, 14:00:04 »
vi sono diverse guide tra gli articoli, tra cui l'ottima di bigham:
http://wiki.joomla.it/index.php?title=Trasferimento_siti_web_Joomla_da_locale_a_remoto_e_viceversa

per il resto è necessario sapere qual è l'errore. ps: ricodati di verificare cje la versione locale del db sia compatibile con quella remota... ovvero gli utenti installano sempre l'ultima disponibile, i provider l'ultima nota come 'stable'.

ps: non sono un cocomero, leggi bene!  ;D

ciao,
marco

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

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #14 il: 26 Ago 2011, 14:03:43 »
 ;D ;D ;D ;D ;D è vero ;D ;D ::)  mmleoni... sto ancora morendo dal ridere...

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #15 il: 05 Ott 2011, 13:10:22 »
Ragazzi, mi sembra di aver risolto
dopo aver ripristinato il sito bucato con un backup pulito e controllato lo stesso con lo script
trovato su questo sito http://redleg-redleg.blogspot.com/p/simple-script-to-find-base64decode-in.html

ho aggiunto la password amministrativa sul plugin  *admin tools*

[Applicazione password amministrativa Un ulteriore livello di sicurezza per l'amministrazione del sistema ci viene offerto dalla funzionalità "Applicazione password amministrativa", attraverso la quale possiamo proteggere con una password le diverse sezione dell'amministratore, il vantaggio di questa password è che va a lavorare a livello del file .htaccess, naturalmente occorrerà che il server web ospitante il nostro CMS supporti tale modalità di protezione. Sarà necessario fornire una username ed una password da utilizzare per l'accesso alle varie sezioni.]
ho installato i seguenti plugin:
*JHackGuard*
*jlmetagenerator_1.5*
*plg_httpbl_10_j15*

plugin *biziantsentry-latest* impostato oltre al resto  su allow solo il mio IP per accesso al pannello amministrativo.

E' da giorni in cui il mio sito non viene più bucato con attacchi del tipo *eval*.
Vi terrò aggiornati... per ora tutto ok!

PS.
elenco atri moduli di sicurezza precedentemente installati ed ancora attivi sul mio sito:
*Marco's SQL Injection*
*Block Password Reset*

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #16 il: 05 Ott 2011, 16:45:32 »
guarda che anche senza nulla di quello che elenchi il sito è sicuro, basta che sia aggiornato e lo resti.

M.

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #17 il: 05 Ott 2011, 16:53:10 »
ho passato un brutto periodo...di sfondamenti del sito... un ripristino backup ogni due giorni , l'ultimo dopo un giorno... :o :o :o questa è stata l'unica soluzione funzionante... per quanto mi riguarda.
Poi chi riesce a fare meglio tanto meglio per lui... per me è il metodo + veloce... ;)

mau_develop

  • Visitatore
Re:Soluzione attacco SQL Injection
« Risposta #18 il: 05 Ott 2011, 17:07:22 »
ma non è un fatto di far meglio o peggio, ragiona....
Joomla lo usano centinaia di migliaia di persone sarebbe un disastro se bisognasse fare tutto quel casino per essere sicuri.

Il tuo problema in sintesi è (uniche possibilità):

- Il server è vulnerabile -> puoi adottare la soluzione che più ti pare ma te lo ribucano quando vogliono
- Tutto è aggiornato ma non hai tolto la backdoor/esploit/malware o cosa diavolo ti hanno messo -> stai facendo qualcosa che non va o non compari le directory e il file o lo script continuano ad esistere.
- Hai qualcosa di vulnerabile -> o non è aggiornato o è all'ultima versione mai più mantenuta e aggiornata dallo sviluppatore.

... non vedo altre soluzioni possibili.
Comunque alla fine se hai risolto bene così, ..ma non è una soluzione "globale" da usare come modo.

M.

guarda che non è che ce l'ho con te... alla fine volevo solo sottolineare il concetto dell'ultima riga che ho scritto ;)

Offline mauro77a

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:Soluzione attacco SQL Injection
« Risposta #19 il: 05 Ott 2011, 17:11:00 »
non me la prendo se vengo criticato... fa parte del gioco... e grazie per i consigli :D

e comunque prendo sempre più in considerazione il fatto che il server che ospita il sito non è dei migliori... per non dire altro ... non so se si possa fare il nome...
 

 



Web Design Bolzano Kreatif