Vulnerabilità HTML

3

La mia domanda è triplice.

Sfondo

Mi è stato chiesto di eseguire alcune scansioni di vulnerabilità su un sito Web con alcuni buchi (credo). In una pagina particolare, sono riuscito a scappare dal campo di testo e scrivere sul sito. Se ho lasciato il sito, il testo che ho inserito a sinistra.

Domande

1) Come posso raccomandare che un campo di testo sia protetto (per quanto riguarda la convalida dell'input prima di essere accettato dal parser html (che ho appreso corre prima degli altri parser))?

2) Il fatto che il testo sia non persistente è rilevante? Posso ancora inserire un tag script e sembra funzionare.

3) Questo, non so se posso davvero aspettarmi di ricevere una risposta; ma, mi manca l'immaginazione per quello che posso fare con questo "buco". Se posso eseguire uno script, dovrei essere in grado di fare qualcosa, ma non credo di conoscere abbastanza script java per quello. Cosa si può fare (non cercare codice ... necessariamente ...) con questo?

    
posta Jeff 04.02.2012 - 13:50
fonte

2 risposte

6

1) How can I recommend a text field be secured (as far as validating input prior to be accepted to the html parser (which I learned runs before any of the other parsers))?

Vedi link per informazioni su come prevenire lo scripting cross-site (XSS). Sarà necessario eseguire la convalida dei dati sul server per assicurarsi che vengano inviati solo i caratteri consentiti e sarà necessario eseguire la codifica di output (ad esempio, molto probabilmente la codifica di entità HTML, ma vedere il collegamento precedente per specifiche) prima di restituire i dati a il browser.

2) Is the fact that the text is non-persistant relevant? I can still put a script tag in there and it seems to run.

XSS "Reflected" XSS e "XSS basato su DOM" di solito non sono considerati pericolosi come XSS "persistente", anche se la popolarità del sito, l'efficacia di phishing / trucchi da parte dell'attaccante e così via, hanno un grande impatto su quanto sia serio un attacco XSS riflesso.

3) This one, I don't know if I can really expect to be answered; but, I lack imagination as to what I can do with this "hole." If I can run a script, I should be able to do something, but I don't think I know enough java script for that. What can be done (not really looking for code... necessarily...) with this?

Rubare sequenze di tasti, dirottare sessioni, ingannare gli utenti nell'installazione di malware, modificare l'aspetto di un sito, reindirizzare le persone a siti uguali ma in realtà siti di attacco, ecc. Vedere link per un semplice esempio del mondo reale.

    
risposta data 04.02.2012 - 15:23
fonte
2

Cercherò di rispondere alla tua domanda. Quindi, se comprendo correttamente la tua domanda, sei in grado di iniettare HTML e Javascript, ma è accessibile solo a te stesso? Se questo è il caso, è ancora potenzialmente problematico in quanto potrebbe esserci un caso in cui i dati da variabili GET, frame figlio, frame padre, archiviazione locale o da qualsiasi altra parte che potrebbero essere dannosi potrebbero iniettare se stessi o altri javascript nella pagina aperta, quindi potenzialmente causando più danni a voi. Questo potrebbe essere con clickjacking, drive-by-download, ecc ...

Per quanto riguarda i consigli per rettificare questa vulnerabilità, è un po 'difficile perché ci dovrebbe essere necessariamente la convalida javascript, possibilmente con l'evento onchange, o l'evento onblur. Tuttavia, non è mai possibile fare affidamento su Javascript per qualsiasi problema di sicurezza, poiché è facilmente disabilitabile o alterato.

    
risposta data 04.02.2012 - 14:47
fonte