principio de inyección CRLF

CRLF se refiere a un retorno de carro (CR, ASCII 13, \ r,% 0d) y de avance de línea (LF, ASCII 10, \ n,% 0a), el sistema operativo se realiza basándose en esta identificación envolver su teclado de entrada Introduzca clave es la salida de este personaje, pero ganar identificar y sistema Linux no utiliza de la misma manera.

Está separada por un CRLF entre dos HTTP cabecera y el cuerpo entre los protocolos HTTP, el encabezado del mensaje HTTP si los caracteres de control, inyección inyecte un poco de abrigo malicioso, por lo que la cookie de sesión y puede inyectar algo de código HTML, y así CRLF llamada la división de respuesta HTTP, referido como el HRS. vulnerabilidades CRLF pueden causar Cookie会话固定y 反射型XSS(可过waf)peligros, inyección XSS Uso de: el uso de dos consecutivo% 0d% OA resultará en la separación entre la cabecera y el cuerpo, que se puede insertar en el código que forma el tipo reflectante XSS vulnerabilidad XSS.


prueba

detección vulnerabilidad de inyección CRLF y detección de vulnerabilidades XSS son también de la misma. O mediante la modificación de los parámetros de URL HTTP, inyecte CRLF malicioso, ver los datos maliciosos se configura en respuesta a la primera salida. Principalmente en el cambio de dirección o ver dónde saltar, se puede agregar la dirección del salto ?url=http://baidu.com/xxx%0a%0dSet-Cookie: test123=123de prueba, el paquete para ver los resultados observando la respuesta.

GET /index.php?c=rpzy&a=query&type=all&value=123&datatype=json&r=X1MU6E86%0a%0dSet-Cookie: test123=123 HTTP/1.1
Host: www.xxxxyou.net

Aquí no nos aprovechamos del éxito, si el uso de éxito, habrá paquete de respuesta de una línea Set-Cookie: test123=123de datos.


Análisis principio

Existe una vulnerabilidad de HRS en la premisa de que: url carácter de entrada que afectará al archivo, como la reubicación de ellos pueden tratar% 0d% 0a como CRLF.

Sitio general se añadirá en la cabecera HTTP Location: http://baidu.comde la manera de 302 saltos, así que podemos controlar el contenido es Ubicación: XXX URL atrás, para hacer frente a esta contaminación.

Suponiendo que el servidor (PHP) es manejado:

if($_COOKIE("security_level") == 1)
{
    header("Location: ". $_GET['url']);
    exit;
}

Los medios de código que cuando se cumple la condición, el valor del parámetro url paquete de solicitud de empalmado en la cadena de ubicación, y el pelo está dispuesto para responder al cliente.

En este punto se recibe el valor del parámetro de URL en el servidor después modificamos:
http://baidu.com/xxx%0a%0dSet-Cookie: test123=123

Después de que el valor del parámetro se empalma a la cadena de dirección URL de ubicación, en respuesta a la primera serie, verá la cabecera de respuesta:
Set-Cookie: test123=123


restauraciones

Server recibe parámetros sobre el extremo frontal, antes de la adición de Ubicación, se filtró necesario \ r, \ n terminador de línea o similares, a la contaminación evitar de la entrada de datos a otro campo de cabecera HTTP.


referencias

https://www.jianshu.com/p/2f2e311e797b
https://blog.csdn.net/shakeyin1998/article/details/88411756

Supongo que te gusta

Origin www.cnblogs.com/mysticbinary/p/12560080.html
Recomendado
Clasificación