Dado un fragmento de JavaScript vulnerable de una respuesta de desbordamiento de pila, ¿cómo puedo encontrar sitios web cuyos autores lo hayan copiado y pegado?

9

Con frecuencia, las respuestas de desbordamiento de pila a las preguntas de JavaScript contienen vulnerabilidades XSS (o vulnerabilidades de otros tipos). Por ejemplo, esta respuesta de con 420 votos y un cuarto de millón de vistas a una pregunta sobre la decodificación de entidades HTML puede causar una vulnerabilidad XSS si se usa en entradas no confiables.

Dada la popularidad de la respuesta, podemos asumir con seguridad que hay docenas, quizás cientos o miles, de sitios web que utilizan este fragmento de código vulnerable. Encontrar esto es de interés tanto para los blackhats (uno de esos sitios podría ser algo que vale la pena de pirateo) como para los Whitehats que deseen informar a los propietarios de esas aplicaciones sobre la vulnerabilidad.

Sin embargo, la ubicación de dichos sitios web no es un problema trivial. Google no indexa JavaScript, por lo que no podemos simplemente buscar en Google el fragmento y encontrar sitios vulnerables. Buscando en GitHub encuentra algunos casos de copiado y pegado del fragmento, pero la fuente de la mayoría de los sitios web no está alojada públicamente en GitHub. Navegar por todo el internet y buscar todo el JavaScript en la web es, por supuesto, una posibilidad teórica, pero no una (o la mayoría de las personas) tengo los recursos para hacer.

Entonces, ¿qué mecanismo práctico tiene una persona normal para buscar lugares donde se ha copiado y pegado un fragmento de código?

    
pregunta Mark Amery 28.12.2016 - 17:43
fuente

2 respuestas

1

No hay una forma fácil y poderosa de escanear en masa para un código dado.

La mayoría de las posibilidades que se me ocurren se han escrito, pero intentaré resumirlas en una respuesta completa. Además, mi respuesta se aplicará a todos los fragmentos de código y no solo a los de Stack Overflow.

  • Buscar contexto: Esta es probablemente la forma más eficiente de buscar el código fuente. ¿Está buscando una vulnerabilidad en un CMS (Wordpress, Joomla, e107)? La mayoría de ellos tienen un contexto específico, como Proudly powered by ... , que puede buscar en Google. Esto no parece aplicarse a las preguntas que nos vinculó, pero a veces, también puede adivinar un contexto donde se ejecutaría el código, lo que puede ayudarlo a encontrarlo en los motores de búsqueda tradicionales.

  • Use motores de búsqueda con código fuente: A pesar de que no son tan buenos como los motores de búsqueda tradicionales, aún puede obtener algunos resultados para el sitio web más popular. Hay muchos de ellos: nerdydata , globalogiq , publicwww , searchcode ...

  • Use plataformas de código compartido: Como se abordó en su pregunta, puede usar las plataformas de código compartido para encontrar código vulnerable y rastrear hasta los sitios web. Github tiene un efecto, pero también puede probar pastebin .

  • Rastrear sitios web: Esta es probablemente la peor y lenta opción, pero seguro que funciona.

Si está más interesado en su propia seguridad, también puede:

  • Use un complemento: el complemento buscaría el código fuente de las páginas que visita y verificará si puede encontrar una coincidencia con uno de los códigos que busca.

Por supuesto, hay otras formas poderosas, como usar botnets, softwares que distribuyes ... pero requieren tiempo o problemas ilegales, por lo que no están dentro del alcance de las preguntas.

    
respondido por el Xavier59 30.12.2016 - 14:23
fuente
-2
  1. En lugar de raspar todos los sitios en Internet, ¿por qué no clonar una copia de un solo sitio que consideramos interesante y luego raspar la fuente de JS para estos fragmentos? Ejemplo: clone example.com y luego audite la fuente.

  2. Use un servicio como enlace para hacer el trabajo por nosotros.

  3. Escriba una araña para rascar los dominios de destino. Como usted dijo, esto probablemente seguirá siendo una teoría: la mayoría de las personas no tienen los recursos para hacer esto, use 1.

respondido por el thel3l 28.12.2016 - 18:36
fuente

Lea otras preguntas en las etiquetas