¿Cómo funcionó la vulnerabilidad Tweetdeck XSS?

4

¿Cómo funcionó exactamente la reciente vulnerabilidad TweetDeck? Dice aquí que tuvo algo que ver con el corazón del HTML, pero yo no. Entender completamente lo que significa la explicación. Desde el enlace:

  

"Estaba tuiteando sobre el símbolo del corazón HTML (♥), porque no lo hice   Sabemos que esto es posible ", dijo a The Register en respuesta a   preguntas por correo electrónico.

     

TweetDeck no debe mostrar esto como una imagen. Porque es   Texto simple, que debe ser escapado a '♥'. Pero en mi tweet utilicé   el carácter Unicode del corazón como referencia para mis seguidores.

     

Había dos corazones. Uno era negro (en la posición donde estaba el ♥   se suponía que era) y uno era rojo (este era el Unicode-char y se   reemplazado por TweetDeck).

     

Entonces, comencé a jugar y descubrí que el Corazón Unicode   (que es reemplazado con una imagen por TweetDeck) de alguna manera previene la   tweet de ser HTML-escapado. Así que usé una etiqueta fuerte de HTML para verificar   esto ... funcionó.

     

Así que escribí un pequeño script que muestra una ventana emergente y luego se bloquea.   sí mismo. Funcionó. "

¿Cuál fue exactamente el vector de ataque aquí? ¿Y cómo "de alguna manera impidió que el tweet se escapara de HTML"?

    
pregunta Eels 19.06.2014 - 21:02
fuente

1 respuesta

1

Este ataque funcionó por una razón muy simple: TweetDeck no desinfectó la entrada del usuario en algunas circunstancias. El atacante no descubrió una forma inteligente de engañar al filtro XSS. En su lugar, encontró una manera de apagarlo. Como dice su cita:

  

Entonces, comencé a jugar y descubrí que el Unicode-Heart (que es reemplazado con una imagen por TweetDeck) de alguna manera evita que el tweet sea HTML-escapado.

Aparte del hecho obvio de que la persona que escribió el código no era muy buena en su trabajo, solo podemos especular por qué un corazón Unicode apagaría el filtro. Supongo que querían renderizar el corazón con una etiqueta <img> y que la etiqueta quedó atrapada en su propio filtro. Así que hicieron una solución fácil y simplemente desactivaron el filtro cuando necesitaban insertar HTML en un tweet.

Pero eso es sólo una conjetura. Para estar seguro de que tendrías que preguntarles, y dudo que respondan.

Entonces, todo lo que tenía que hacer después del descubrimiento era escribir algo de JavaScript para hacer el retweet automático, abofetear un corazón al final y twittearlo. Si tienes suficientes seguidores que usan TweetDeck, se propagará por sí mismo desde allí.

Algunas buenas explicaciones no técnicas:

respondido por el Anders 14.06.2016 - 16:46
fuente

Lea otras preguntas en las etiquetas