¿Con respecto a las secuencias de comandos entre sitios?

5

Mi aplicación tiene un módulo de administración de usuarios que utiliza campos como nombre de usuario, nombre, correo electrónico, contraseña, ... Intenté escanear estos campos y rellenar JavaScript malicioso para probar las secuencias de comandos entre sitios como anil<script>alert(1);</alert> . Los datos modificados se almacenan en la base de datos, pero cuando actualizo la página, no veo ningún mensaje emergente. ¿Cómo puedo asegurarme de que no soy vulnerable a los scripts de sitios cruzados?

    
pregunta lakshmi Prudhvi 01.07.2013 - 14:23
fuente

4 respuestas

10

Lamentablemente, las pruebas para los scripts entre sitios no son completamente sencillas. Dependiendo de dónde se devuelve su entrada, es posible que necesite usar varios vectores diferentes para probarlo por completo.

Si desea utilizar una herramienta automatizada para revisar su sitio, algo como arachni puede ser una buena idea, o un eructo el escáner de pro si tiene acceso a eso.

Desde una perspectiva manual, puede obtener una idea del rango de posibles vectores de la lista en html5sec

    
respondido por el Rоry McCune 01.07.2013 - 15:24
fuente
8

Lo que estás haciendo depende de dos cosas que suceden

  1. Puede cargar javascript en el almacén de datos donde el usuario procesará ese javascript.
  2. Cuando el navegador del usuario representa ese JavaScript, en realidad se ejecuta.

Se supone que los desarrolladores deben verificar la entrada para ver si hay cosas malas, asegurarse de que la entrada esté codificada en html y rechazar las cosas malas como el marcado. Por otro lado, el desarrollador debe asegurarse de que todo lo que haya ingresado a la base de datos se haya procesado de manera inofensiva.

El hecho de que puedas obtener javascript en la base de datos me dice que los desarrolladores no hicieron un buen trabajo para verificar la entrada y necesitan corregir eso . Nunca he conocido a alguien que tenga etiquetas html en su nombre :)

El hecho de que no se ejecute en el otro lado me dice que el marco que utilizan probablemente codifica la salida, por lo que en la mayoría de los casos se procesa de manera inofensiva. Estoy dispuesto a apostar si realmente te esfuerzas, puedes codificar tu javascript de manera que puedas ejecutarlo. Debe asegurarse de marcar todas las entradas y todas las salidas . Las herramientas automatizadas son buenas y todas, pero son solo un punto de partida.

¡Espero que esto ayude!

    
respondido por el Four_0h_Three 01.07.2013 - 15:42
fuente
1

Hay tres enfoques básicos para las pruebas de seguridad, al igual que con cualquier otra prueba. Este es el marco que he creado para la compañía Fortune 500 en la que soy responsable de definir la estrategia de pruebas de seguridad. Esto se basa en las prácticas de prueba de QE / QA estándar, que se han ampliado para abordar las características de "seguridad".

  1. Contratar expertos. Son muy caros y generalmente no probarán todo el producto. O, si prueban todo el producto, es absurdamente caro.

  2. Pruebas automatizadas, utilizando escáneres. Esto lo cubre para las vulnerabilidades más básicas, pero los escáneres son tontos y faltan lot.

  3. Probar que su producto se comporta correctamente con pruebas de unidad, integración y sistema. ¿Sus codificadores codifican correctamente la salida para las distintas ubicaciones donde ocurre XSS (javascript, html, css, urls, etc.)? ¿Tienes un marco de interfaz de usuario? ¿El marco de la interfaz de usuario utiliza correctamente los codificadores en todas las ubicaciones donde se escribe la salida (incluidos los mensajes de error y de salida normales)? ¿El marco de la interfaz de usuario se llama de forma coherente en toda la aplicación?

respondido por el atk 01.07.2013 - 18:11
fuente
-1

Usted puede probar las vulnerabilidades de XSS usted mismo. En primer lugar, comprenda que hay 3 tipos de ataques XSS

  • XSS persistente
  • XSS no persistente
  • Vulnerabilidad basada en Dom

Puede consultar el wiki de OWASP para obtener más información

Si no está listo para leer, puede probar algunas herramientas disponibles en línea, como Xsser

    
respondido por el Jijo John 01.07.2013 - 19:43
fuente

Lea otras preguntas en las etiquetas