Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Suggerimenti per sql injection

    Buongiorno a tutti,
    è quasi un mese che sto lottando contro una sql injection su database condiviso da 2 siti internet ed un gestionale (che non ho realizzato io). E veramente mi sto esaurendo
    Per quanto riguarda i siti internet ho già provveduto a mettere una funzione che mi controlla i campi che arrivano da form e vengono utilizzati nelle query... questa se trova parole/ "incriminate" mi reindirizza su una pagina di errore e se non c'è il redirect comunque mi va a pulire la stringa... dovrei aver protetto tutto...
    Il gestionale invece è immenso, parliamo di più di 100000 file... qualcosa sono già riuscita a fare, ma non ancora tutto (anche perchè passo il tempo a sistemare i danni fatti dall'injection). Per accedere al gestionale bisogna fare una login che è protetta da una funzione di pulizia della stringa.
    Esiste un modo per capire da dove arriva l'intrusione?
    Il provider non è molto collaborativo (tanto più che sarà chiuso per ferie fino a settembre) e mi ha inviato i log a siti e gestionale, dove sono indicate le pagine chiamate con gli indirizzi ip... cosa posso cercare per individuare da dove arriva l'injection?
    Grazie a chiunque mi sappia aiutare.

  2. #2
    Il gestionale invece è immenso, parliamo di più di 100000 file... qualcosa sono già riuscita a fare, ma non ancora tutto (anche perchè passo il tempo a sistemare i danni fatti dall'injection). Per accedere al gestionale bisogna fare una login che è protetta da una funzione di pulizia della stringa.
    Non è importante quanti file o linee di codice ha il gestionale. Esiste un'architettura? Un ORM? Esiste una qualche classe che si occupa di gestire la comunicazione fra business logic e DBMS?

    In cosa è scritto il Gestionale? PHP? Gira su Apache?
    Experience is what you get when you don’t get what you want

  3. #3
    Il gestionale è in asp, mentre i siti in asp.net, quindi sistema microsoft
    IO ho accesso solo ai file sugli ftp e conosco che tabelle costituiscono il database ed i campi però non so la struttura nè il tipo di gestione che ne viene fatta. Non ho accesso al pannello di controllo.
    E' un sistema vecchio su cui chi c'era prima di me ha fatto aggiunte su aggiunte, senza mantenere il database normalizzato ... insomma un vero casino, di cui non esiste documentazione

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,655
    conviene studiare quali sono le strategie più diffuse per proteggersi da sql injection, e vedere se sono state applicate e dove mancano.
    è comunque un lavoracchio.

    intanto cerca la pagine che possono scrivere nel db nel modo che hai scoperto essere possibile, e controlla prima quelle.
    tieni sott'occhio anche la registrazione degli utenti: trattandosi di vecchio progetto potrebbe esserci un bug che consente di ottenere le credenziali d'accesso. molti vecchi progetti avevano questo male.

  5. #5
    Successo un altro attacco, ma questa volta sapevo l'orario. Rientrato il provider, analizzando i log dell'ora probabilmente abbiamo trovato la pagina in un sito... come detto nel post iniziale, avevo protetto i siti con una doppia funzione di reinderizzamento e pulizia ... peccato che l'injection avveniva in ESADECIMALE! (se volete, vi posto pure il testo dell'injection) ... e quindi evitava il blocco che avevo messo... quindi forse forse ho risolto...
    Comunque è veramente un lavoraccio perchè le pagine che scrivono nel database nel gestionale sono migliaia, di meno (una cinquantina) quelle dei siti.

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,655
    Quote Originariamente inviata da michela85cancro Visualizza il messaggio
    se volete, vi posto pure il testo dell'injection
    se intendi "il come" (e non il testo spammoso ), è sicuramente interessante.
    tuttavia, trattandosi di problematiche di sicurezza, preferirei che tu me lo mandassi via mail o pvt;
    poi vediamo se è il caso di pubblicare sul forum la questione

  7. #7
    Quote Originariamente inviata da michela85cancro Visualizza il messaggio
    ... peccato che l'injection avveniva in ESADECIMALE!
    È una casistica abbastanza nota.

    L'unico modo per risolvere il tuo problema è l'olio di gomito. Andare a fare l'escape su tutto l'input potrebbe compromettere il corretto funzionamento del gestionale, quindi l'unica soluzione è quella di analizzare ogni singolo file.

    Se stiamo parlando di un migliaio di file con una media di 50 file al giorno ce la puoi fare in poco tempo. Considera che, lo stesso tuo problema ce l'ho avuto con il gestionale di un mio cliente (robaccia fatta da terzi). Alla fine in un paio di giorni di lavoro sono riuscito a correggere tutti i bug sull'escape (parliamo di un centinaio di file).

    In fin dei conti devi solo analizzare i file alla ricerca di query non parametriche (anche se, ovviamente, vale la pena di cercare anche altri tipi di bug noti).
    Experience is what you get when you don’t get what you want

  8. #8
    magari un migliaio ... sono almeno 10 volte tanti ... comunque sto risolvendo così, nei momenti in cui sono libera dalle altre milioni di cose che devo fare ogni giorno
    Grazie mille dell'aiuto

  9. #9
    Quote Originariamente inviata da michela85cancro Visualizza il messaggio
    magari un migliaio ... sono almeno 10 volte tanti ... comunque sto risolvendo così, nei momenti in cui sono libera dalle altre milioni di cose che devo fare ogni giorno
    Grazie mille dell'aiuto
    Valuta anche la possibilità di spostare il gestionale in un server interno all'azienda, senza accesso pubblico. Se hanno necessità di lavorare dall'esterno allora puoi impostare una VPN.
    Experience is what you get when you don’t get what you want

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 © 2024 vBulletin Solutions, Inc. All rights reserved.