xss Scripting su clean-urls

2

Sto imparando sulla vulnerabilità XSS. Ho bisogno di sapere quale tipo di attacco XSS può essere fatto su URL puliti. Esempio di URL pulito: //my url.net/project/public/#questions/question/edit/id/122/answer/1

    
posta user2376425 22.10.2013 - 10:44
fonte

2 risposte

3

Sono un po 'oscuro su cosa intendi per what sort of xss attack can be done on clean urls , quindi ho intenzione di esaminare entrambi i tipi di XSS per la tua situazione.

Dipende molto da come viene utilizzato quell'URL per il rendering della pagina. Per prima cosa parliamo di due diversi tipi di XSS.

Reflected XSS: Part of your URL is rendered on the page and the attack payload is part of your URL. You need to trick users into clicking your link to execute the attack.

Stored XSS: The XSS is stored on the server itself due to insecure programming. Then when a user visits the page with the XSS payload, the attack is called up from the server. The user just needs to visit the page, no link clicking required.

Quindi non guardare l'URL di esempio:

//my url.net/project/public/#questions/question/edit/id/122/answer/1

Quando lo guardo per la prima volta, non vedo nulla che salti fuori come renderizzato alla pagina, ma per ragioni di argomenti diciamo che stai facendo il rendering dell'ultimo parametro (1). Se modifichi l'URL a questo:

//my url.net/project/public/#questions/question/edit/id/122/answer/1<script>alert('xss');</script>

e hai indotto un utente a fare clic su quel link, visualizzerebbe xss in una casella di avviso sulla sua pagina. Questo è un attacco XSS riflesso.

Uno scenario più probabile è che l'ultimo parametro (1) viene usato per estrarre alcune informazioni dal database e renderle nella pagina. Se non hai protetto adeguatamente te stesso contro XSS è possibile che qualcuno abbia inviato una risposta contenente codice javascript. Esempio:

My answer to question 1<script>alert('xss');</script>

Ora chiunque visiti quella risposta vedrà una finestra di avviso che dice xss .

    
risposta data 22.10.2013 - 17:00
fonte
0

Non c'è motivo per cui non puoi semplicemente fare qualcosa del tipo:

//my url.net/project/public/#questions/question/edit/id/122/answer/1"><script>alert(document.domain);</script>

Tuttavia, detto questo, dipende totalmente da come viene eseguito il rendering dell'output, dal fatto che i caratteri vengano codificati usando le Entità HTML oi Caratteri Speciali HTML, o se vengano semplicemente emessi come testo normale.

La cosa che devi fare è chiamare "Fuzzing", dove puoi aggiungere caratteri indesiderati in un input (sia esso una casella di input o un URL o qualsiasi altra cosa) e vedere come tornano nella fonte.

Ad esempio:

":<>'\t{}banhammer/

Uso sempre qualcosa per identificare il mio input di stringa, quindi nel caso precedente è banhammer , quindi è facile cercare attraverso la fonte.

Inoltre, nota il \t in là? Ciò è dovuto al fatto che molte applicazioni sul web utilizzeranno (strip | add) cslashes (almeno in PHP) che, se usato in modo errato, potrebbe causare l'esecuzione corretta di XSS.

    
risposta data 22.10.2013 - 13:05
fonte

Leggi altre domande sui tag