DVWA-XSS (reflejado) (cross-site reflectante scripting)

XSS , a saber (Cross Site Scripting) los ataques de cross-site scripting

XSS Tipo de vulnerabilidad:
reflectante (no persistente): utiliza principalmente para el código malicioso al parámetro de URL, el cliente utilizado para robar información de las cookies y phishing.

Tipo de almacenamiento (duradero): el código malicioso atacante en el servidor Web y guardado, será atacado, siempre que el acceso de los clientes a la página correspondiente.

Tipo de DOM: Dom incluye el uso de un navegador, el navegador no realizar, sino mediante la solicitud de modificar o robar información local a nivel local directamente.

Ahora comenzamos a ejercicios de reflexión XSS

Bajo

fuente:

array_key_exists () función comprueba si existe la clave especificada en el nombre de una matriz, devuelve verdadero si existe el nombre de clave, si la clave no existe devuelve false. Aquí llamado clave de nombre

Se puede ver, por código de bajo nivel justo para determinar si el parámetro de nombre está vacío, si no está vacío, luego imprimirlo directamente, y no hicieron ningún tipo de filtrado e inspección del parámetro de nombre, existe una vulnerabilidad XSS muy obvio

 

Entramos en la <script> alert ( 'piratear') </ script> directamente realizado nuestro código js

 

 

 

Medio

fuente:

Aquí, la función str_replace () sólo el "<script>" para hacer un filtro, (función str_replace () no es perfecta, porque es entre mayúsculas y minúsculas)

Pero el doble de escritura, el capital todavía se puede escribir,

Nos puede directamente derivación de la capital

Entramos en la <script> alert ( 'piratear') </ script>, se realizó código directamente js

 

 

Ahora duplicar la carretera de circunvalación

Filtrado de código:

= Nombre str_replace $ ( '<Script>', '', $ _GET [ 'nombre']), <Script> filtrada interceptado ;

1, el Cuál es su caja de entrada de nombre,?: <Script> Alerta (123) </ script>

Una vez presentado, el navegador no pop pop que esperábamos, el contenido de alerta pantalla, por el contrario, directamente a la "alerta (123)" como el nombre aparece, indicando str_replace () Función aquí para entrar en vigor:

2, trate después del ataque, el nombre en el cuadro de entrada ¿Cuál es su entrada ?:

<Sc <script> ript> alert ( "Si usted puede ver, lo que indica un ataque exitoso") </ script>

Principio: Aquí, la función str_replace () sólo el "<script>" para hacer un filtro,

"   <Sc <script> ript> Alerta (" Si usted puede ver, lo que indica un ataque exitoso ") </ script>   " Una vez presentado,
Completa "<script>" cadena es interceptada, "<sc" y "ript>" en que se recibió la costura, el servidor es " <script> alert (" Si usted puede ver, lo que indica un ataque exitoso ") </ script> ".
 

Alto

fuente:

Puede ser visto, el uso de un código de alto nivel directamente a la expresión regular <* s * c * r * i * p * t al filtro, y * representa uno o más de cualquier carácter, representantes I mayúsculas y minúsculas. Por lo tanto, nuestra etiqueta <script> no se puede utilizar aquí.

Pero podemos inyectar código malicioso a través de JS img src, el cuerpo y los eventos o etiquetas iframe y otras etiquetas de otra .

Entramos en el <img src = 1 onerror = alert ( 'piratear')>
Los medios de entrada anteriores, cuando el error de visualización de la imagen, y luego realizar alert ( 'piratear'),
Aquí estamos, sin duda src = 1 error ah, por lo que la sentencia se ejecuta de alerta
Después de la aplicación ver el código fuente de la página, se puede ver, nuestro código en la página.

 

Imposible

fuente:

htmlspecialchars (string): el carácter predefinido "<" (menor que), ">" (mayor que), y, '', '' se convierte en entidades HTML, lo que impide el navegador como un elemento HTML

Si al entrar en el <script> alert ( 'piratear') </ script>, ya que la función htmlspecialchars va a convertir en entidades HTML y llevado $ {nombre} es un valor <y> $ nombre, y luego encerrado en <pre> </ pre> etiqueta se imprime, por lo que inserto no se ejecutan las instrucciones.

 

 

Como puede verse, código de nivel imposible determinar si el nombre está vacío, las palabras no vacías y compruebe que manera, para protegerse contra los ataques CSRF. A continuación, utilizar la función htmlspecialchars para convertir el nombre de los personajes predefinidos en entidades HTML, evitando de este modo a llenar en la etiqueta

 

 

Supongo que te gusta

Origin www.cnblogs.com/escwq/p/12499001.html
Recomendado
Clasificación