Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    17

    sicurezza: un caso concreto

    Ciao a tutti,
    volevo proporre un esempio: ho una pagina asp che fa il redirect in una nuova pagina asp in questo modo:

    Viene richiamata:

    pagina1.asp?nuovo=pagina2

    in pagina1.asp è presente:

    Codice PHP:
    sIndirizzo request.querystring("nuovo")

    response.redirect(sIndirizzo&".asp"
    Purtroppo finora non avevo tenuto conto di problemi di sicurezza dovuti al fatto che l'utente può scrivere come indirizzo pagina1.asp?nuovo=quellochevuole
    Secondo voi e soprattutto secondo Habanero posso aver avuto problemi di sicurezza in tutto il tempo in cui è stato online il codice? A me sembra che il problema sia semplicemente nel fatto che potevano scrivere il nome di qualche altra pagina asp dopo nuovo= , ma ciò equivale a scrivere direttamente l'indirizzo nel browser, è corretto? Il fatto che provenga da un response.redirect non penso crei problemi.
    Grazie anticipatamente per i pareri.

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Teo_h le domande facciamole a tutti gli utenti del forum...

    Per quanto riguarda lil tuo problema... in generale la validazione dell'input è importantissima per la sicurezza delle applicazioni web. Nel caso specifico però non credo vi siano gravi problemi. Questo è dovuto al fatto che esegui un semplice redirect http.
    L'unico problema che vedo è un possibile tentativo di spoofing dell'indirizzo. Un utente "A" malintenzionato potrebbe mandare ad un utente "B" il link al tuo sito nella cui querystring di redirect sia presente un sito esterno dannoso.
    Es:

    http://www.tuosito.it/pagina1.asp?nu...irus.com/index

    Se l'utente B conosce il tuo sito e lo giudica affidabile, potrebbe cliccarvi sopra senza leggere tutto l'URL e senza accorgersi del secondo indirizzo. Senza neanche accorgersene verrebbe automaticamento rediretto dal tuo sito su quello dannoso.

    Diciamo che questa non è una vulnerabilità dell'applicazione che consenta all'attaccante di prenderne possesso o di modificare le pagine. Possiamo considerarlo un effetto collaterale.

    Molto diverso invece è il caso in cui l'argomento della querystring contenga un file locale che venga incluso in un'altra pagina. Qui non abbiamo più un redirect http, ma la pagina inclusa viene inserita in quella che fa contenitore e qui viene eseguita. Se non ricordo male in ASP non è possibile fare inclusioni dinamiche quindi il problema non dovrebbe sussistere. In PHP invece la cosa è possibile e se disgraziatamente sono abilitati i wrapper che consentono inclusioni remote sono possibili vulnerabilità devastanti: ad esempio è possibile prelevare da un server esterno codice PHP che verrà eseguito direttamente all'interno del server attaccato.
    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
    Registrato dal
    May 2007
    Messaggi
    17
    Grazie per le risposte e anche x aver cambiato il titolo, ho scritto in fretta e non ne ho scelto uno adatto... quando mi sono accorto di questa "vulnerabilità" mi sono preoccupato parecchio (vedi anche http://forum.html.it/forum/showthrea...readid=1144596).

    Nella seconda parte della risposta parli degli include lato server? Si possono fare anche in ASP, non so se però è possibile includere file da altri server remoti, forse dipende da qualche impostazione di IIS.

  4. #4
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Premetto che non conosco ASP e magari dirò fesserie.
    Però immagino che l'istruzione response.redirect altro non faccia che inviare uno header HTTP di tipo location al client.

    In questo modo sarebbe possibile riuscire ad aggiungere (tramite date stringhe in ingresso) un'altra riga (e quindi un altro header) in cui venga "ordinato" al client di settare un cookie sul browser in uso.

    Se quindi l'utente viene indotto a seguire tale link, allora sul suo browser sarebbe possibile ritrovare un cookie col valore scelto dall'autore del link.
    Che potrebbe esser usato come attacco alle sessioni.

    Ipotizzo, ripeto, ma in PHP sarebbe possibile.

    Com'è possibile - esattamente come si diceva - includere (ed eseguire) script remoti.

    [.:: JaguarXF ::.]
    __________________

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    17
    Per quanto riguarda il discorso dell'inclusione non è cmq il caso di questa pagina fortunatamente, giusto?

    Vorrei invece approfondire dei cookies: ciò che hai appena detto si può verificare solo se, come aveva scritto Habanero, un utente invia ad un altro utente un link con il mio sito e il valore della querystring modificato, corretto? E in ogni caso si tratterebbe solo di recuperare delle informazioni sul client, ma non sul server. Ma sarebbe possibile modificare gli header della pagina tramite redirect anche se il redirect avviene con un'estensione predefinita (response.redirect(sIndirizzo&".asp") in questo caso)?

  6. #6
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Originariamente inviato da Teo_h
    Per quanto riguarda il discorso dell'inclusione non è cmq il caso di questa pagina fortunatamente, giusto?
    Giusto

    Vorrei invece approfondire dei cookies: ciò che hai appena detto si può verificare solo se, come aveva scritto Habanero, un utente invia ad un altro utente un link con il mio sito e il valore della querystring modificato, corretto?
    Sì.

    E in ogni caso si tratterebbe solo di recuperare delle informazioni sul client, ma non sul server.
    Settare, non recuperare.

    Ma sarebbe possibile modificare gli header della pagina tramite redirect anche se il redirect avviene con un'estensione predefinita (response.redirect(sIndirizzo&".asp") in questo caso)?
    ASP lo ignoro, sorry.

    [.:: JaguarXF ::.]
    __________________

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.