¿Qué es un ataque de inyección de JavaScript?
1. La inyección de JavaScript es ingresar una pieza de código JS en la barra de direcciones del navegador para cambiar el contenido de las variables JS de la página y las etiquetas de la página.
Usando la inyección de JavaScript, los usuarios pueden cambiar su contenido sin cerrar o guardar páginas web, que se realiza en la barra de direcciones del navegador. La sintaxis del comando es la siguiente:
JavaScript: Alert (#comando#)
Por ejemplo, si desea ver un cuadro de advertencia de alerta en el sitio http://www.example.com, primero ingrese la URL en la barra de direcciones y espere a que se cargue la página, luego elimine la URL e ingrese:
JavaScript: Alerta (Hello World)
Como una nueva URL. Esto aparecerá un cuadro de advertencia Hello World, utilizando esta técnica para cambiar casi cualquier cosa en una página web, como una imagen. Supongamos que hay una imagen del logotipo del sitio web, y encontramos uno de los códigos HTML mirando el archivo fuente de la página:
<Img name = Hola src = hello.gif>
La imagen se llama hola, el archivo fuente es hello.gif, queremos cambiarla a el archivo bye.jpeg almacenado en nuestro sitio (http://www.mysite.com), por lo que la dirección de URL completa de la imagen es http://www.mysite.com/bye.jpeg, usando inyección de javascript, solo necesitamos entrar en la barra de la dirección:
JavaScript: Alert (document.hi.src = http: //www.mysite.com/bye.jpeg)
Verá una ventana emergente de advertencia de http://www.mysite.com/bye.jpegalert, y la imagen cambia. ¡Cabe señalar que estos cambios son solo temporales! Si actualiza la página o vuelve a ingresar, sus cambios desaparecerán porque acaba de hacer estos cambios en su PC, no en el servidor web.
Usando el mismo método que podemos ver o cambiar el valor de la variable, por ejemplo, encontramos un código como este en una página web:
<Script language = javaScript> var a = test </script>
Significa que el valor de la variable A es la prueba, y ahora ingresamos:
JavaScript: Alerta (a)
Luego cambiamos su valor a Hello:
JavaScript: alerta (a = hola)
La inyección de JavaScript generalmente se usa para cambiar las propiedades de formulario, suponiendo que hay un código como este:
<Form name = format Action = send.php método = post> <input type = Hidden name = mail [email protected]> <input type = text name = name> <input type = shit value = envit> </form>
Queremos que el formulario se envíe a nuestro buzón, no a [email protected]. Puede usar el siguiente comando:
JavaScript: alerta ([email protected])
Tal vez hayas notado la jerarquía de estos comandos:
Vamos a explicarlo de izquierda a derecha:
1) El documento está en la izquierda más
2) Luego está el nombre del objeto que queremos cambiar (como document.hi.src) o el objeto que contiene (como document.format.mail.value)
3) Finalmente, el atributo que queremos cambiar (como la ruta de origen: document.hi.src, o valor variable: document.format.mail.value)
4) Usar. Separación de número
5) Cuando queremos cambiar el valor del atributo, usamos el signo = y el nuevo valor de atributo
*Nota: Cuando el nuevo valor de atributo es una cadena (por ejemplo: [email protected]) debe estar encerrada en cotizaciones dobles.
Si queremos usarlo como un valor para una variable, no necesitamos usar cotizaciones dobles. Por ejemplo, si queremos asignar el valor de la variable B a la variable A, podemos ingresar JavaScript: Alert (a = B).
Sin embargo, la mayoría de las etiquetas en la página no tienen nombres, como:
<Form Action = Send.php Method = Post> <input type = Hidden name = mail value@[email protected]> <input type = text name = name> <input type = shit value = envit> </form>
No hay nombre de formulario en este código. Según la información anterior, puede usar este comando:
JavaScript: Alert (documento. .mail.value = [email protected])
En este caso debemos contar y encontrar el número de secuencia de formulario, y el siguiente es un ejemplo:
<form de acción = send.php método = post> <input type = text name = name> <input type = subbit value = subt> </form> <form de formación action = send.php Method = post> <input type = Hidden name = mail [email protected]> <input type = text name> <input type = enviar value = enviar> </formul type = Subt value = Envit> </form>
En el código anterior, vemos 3 formularios, pero solo estamos interesados en el segundo, por lo que el número de formulario que queremos es 2. No olvide que comenzamos desde 1, como 1, 2, 3, 4 ... mientras JavaScript comienza desde 0, como 0, 1, 2, 3 ... por lo que el número de forma real es 1, no 2. Por lo general, tenemos que sujetar el número de forma encontrada por uno. Usaremos este número de serie para completar nuestro comando:
JavaScript: alerta (document.forms [1] .mail.value = [email protected])
De esta manera, puede cambiar la imagen o el enlace sin un nombre, y puede cambiar los formularios a cualquier tipo de etiqueta que desee. Para fotos
JavaScript: alerta (document.Images [3] .src =#La url de la imagen que desea#)
Porque el enlace es
JavaScript: alert (document.links [0] .href =#La URL que desea#)
Finalmente, podemos usar esta técnica para editar cookies. El siguiente comando está escrito por Dr_amado de TriviaseCurity.net, y lo modifiqué solo un poco para que aparezca antes de que el usuario lo edite. Solo necesita copiarlos en la barra de direcciones:
javascript: alert (window.c = function a (n, v, nv) {c = document.cookie; c = c.substring (c.indexof (n)+n.length, c.length); c = c.substring (1, ((c.indexof (;)>-1)? document.cookie = n+=+escape (nc); alerta ('La cookie es:'+document.cookie+''); alerta (c (indicador (el nombre de la cookie:,), indicador (cambie este valor:,), indica (con esto:,))))// Si desea cambiar manualmente su cookie, puede usar el siguiente comando:
JavaScript: alerta (document.cookie)
Esto mostrará su cookie actual, suponiendo userId = 1, si desea cambiarla a userId = 2, puede usar el siguiente comando:
JavaScript: alert (document.cookie = userId = 2)
¡Finalmente tengo que enfatizar que todos los cambios están solo en el lado del cliente! Es como guardar una página web en su PC y modificarla. Aún así, usando este truco aún puede engañar a la página (como cookies) o omitir la verificación de seguridad. Por ejemplo, algunas páginas web detectarán la ubicación donde el usuario envía datos. Si envía datos desde http://www.test.com/form.php a http://www.test.com/check.php, check.php puede detectar si los datos provienen del formulario en http://www.test.com/form.php. Además de eso, si planea ingresar su propio código JavaScript en la página, utilizando algunos de estos trucos, ¡podrá cambiar la imagen y dejarla igual!
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.