Piratería informática (seguridad): ¿Cómo funcionan realmente las secuencias de comandos de sitios cruzados (XSS) y la inyección SQL?

La inyección SQL funciona contra sitios perezosos que codifican el acceso a la base de datos en la página web. Por ejemplo, la página web dice algo así como “action = http: //database.example.com? Price + where + item = bun”
y un hacker hace su propia consulta que dice “action = http: //database.example.com? pass …
O bien, el sitio no desinfecta la entrada correctamente y el hacker puede preguntar el precio de “bun; show + password + where + user = admin”

La secuencia de comandos entre sitios es un nombre inapropiado, es realmente una secuencia de comandos dentro del sitio. Suponga que hay una página example.com/storefront donde puede comprar cosas, y hay otra página en el mismo sitio example.com/userforum. Si userforum permite que las personas publiquen comentarios que incluyen un script (o algo que no se escapará a un script), entonces el navegador permite que ese script interactúe con / storefront porque ambos están en el mismo dominio. Si una víctima tiene ambas páginas abiertas a la vez, el script puede leer los valores de la página de la tienda (nombres de inicio de sesión, números de pedido) y pasar la información a un sitio de terceros mediante una solicitud web. También puede escribir en valores de formulario, por lo que en algunos casos podría volver a escribir un precio de artículo o una entrada de cupón y permitir que un atacante obtenga productos de forma gratuita.

Acerca de los ataques XSS, simplemente puedo expresarlo como inserción de código Javascript malicioso en una página web, que puede robar su cookie de sesión o hacer algo malicioso (hacer que la página haga algo más de lo que debería).

Javascript es un lenguaje de programación que entienden nuestros navegadores web, es decir, Internet Explorer, Chrome, etc.
Javascript tiene un alcance muy limitado para hacer cosas en su computadora.
Pero puede acceder al HTML, las cookies de su página web o puede redirigirlo a otra página.

Vamos a entender XSS por este ejemplo:
Supongamos que Facebook es vulnerable a XSS. Solo imagina, no intentes esto en Facebook.

Ahora, cuando los usuarios comentan alguna publicación, Facebook la guarda en su base de datos y te muestra en forma de HTML.

Ahora un hacker puede publicar este comentario:

Este comentario comienza con

Este código incluirá su cookie y la pasará a la página del hacker.

Ahora, cuando alguien abra esta página web, el código pasará sus cookies al hacker.

Creo que expliqué el ataque simplemente. Comenta de nuevo si hay algo que no entiendas.

XSS: secuencias de comandos de sitios cruzados. No es más que simplemente inyectar javascript en páginas web. Hay dos métodos diferentes en esto. Persistente y no persistente. Persistente es más peligroso que no persistente y también difícil de encontrar. No persistente se usa principalmente para secuestro de sesión. La forma en que inyecta su javascript depende de ese sitio en particular. No hay ningún mecanismo involucrado, excepto pasar por el doloroso proceso de leer cientos de líneas de código en el extremo de su cliente y esperar que hayan cometido un error. Puede encontrar vulnerabilidades XSS utilizando el método de prueba y error en sitios web de perfil pequeño, pero para sitios web corporativos, generalmente están protegidos contra dichos métodos de prueba y error, lo que significa que debe pasar por el código fuente y encontrar los errores de programación.

SQLi: inyección SQL. Te mostraré un ejemplo básico. Tomemos la consulta: SELECT * FROM users WHERE user = “$ username” y password = “$ password”. Normalmente, si ingresa una contraseña como hello for admin , se interpretará como SELECT * FROM users WHERE user = “admin” y password = “hello”. ¿Qué sucede si ingresa la contraseña como “OR 1 = 1 ? Se interpretará como SELECT * FROM users WHERE user =” admin “y password = ”” OR 1 = 1, que siempre es correcto y, por lo tanto, está conectado. Los diferentes ataques SQLi tienen básicamente la misma metodología en su núcleo, aunque la aplicación cambia con el sitio web en el que está tratando de encontrar la vulnerabilidad.
Ejemplo de algunos sitios de alto perfil que se encontraron con este tipo de vulnerabilidades hace unos años: Asus, Samsung, etc.

Entonces, ¿cómo puedes ser bueno en esto?
1. Aprende a hacer trampa en todo.
2. Aprenda a ser paciente y cómo cambiar las tácticas rápidamente ante la adversidad hasta que tenga éxito.
3. Aprenda a comprender a las personas, sus motivaciones y cómo manipularlas.
4. Aprenda a recordar grandes cantidades de información, particularmente sobre tecnología.

Espero que tenga sentido. Aprender esto es una pérdida de tiempo y no sirve para nadie, como había descubierto hace unos años. Porque aprender esto siempre haría que una persona se convierta en una persona de todos los oficios, pero no domine ninguno, lo que no es exactamente lo que las compañías quieren en una persona 🙂