princípio de injeção CRLF

CRLF refere-se a um retorno (CR, ASCII 13, \ r,% 0d) e de avanço de linha (LF, ASCII 10, \ n,% 0A), o sistema de operação é realizada com base nesta identificação embrulhar seu teclado de introdução tecla Enter é a saída deste personagem, mas ganhar identificar e sistema linux não usa exatamente o mesmo.

É separado por uma crlf entre duas HTTP Cabeçalho e corpo entre o HTTP, o cabeçalho da mensagem HTTP se os caracteres de controle, injetar um pouco de envoltório malicioso, para que o cookie de sessão e pode injetar algum código html, e assim por CRLF injeção chamado de divisão de resposta HTTP, referido como o HRS. vulnerabilidades CRLF pode causar Cookie会话固定e 反射型XSS(可过waf)perigos, injecção XSS Uso de: utilizando dois consecutivos% 0d% OA irá resultar na separação entre o cabeçalho e do corpo, que pode ser inserida no código de formação do tipo reflexivo xss vulnerabilidade xss.


teste

detecção vulnerabilidade injecção CRLF e detecção de vulnerabilidades XSS também são sobre o mesmo. Ou através da modificação dos parâmetros de HTTP URL, Inject CRLF malicioso, ver os dados maliciosos é configurado em resposta à primeira saída. Principalmente no redirecionamento ou ver onde a saltar, você pode adicionar o endereço do salto ?url=http://baidu.com/xxx%0a%0dSet-Cookie: test123=123de teste, o pacote para ver os resultados, olhando para a resposta.

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

Aqui nós não aproveitar o sucesso, se o uso de sucesso, haverá pacote de resposta de uma linha Set-Cookie: test123=123de dados.


Análise princípio

HRS vulnerabilidade existe na premissa de que: caráter url de entrada que vai afetar o arquivo, como a deslocalização deles pode tentar% 0d% 0a como crlf.

geral do site será adicionado no cabeçalho HTTP Location: http://baidu.comda maneira de 302 saltos, para que possamos controlar o conteúdo é Localização: XXX URLs para trás, para abordar esta poluição.

Assumindo que o servidor (PHP) é tratado:

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

Os meios de código que, quando a condição é satisfeita, o valor do parâmetro url pedido de pacotes emendados na cadeia de Localização, eo cabelo está arranjado para responder ao cliente.

Neste ponto, o valor do parâmetro url é recebido no servidor depois que modificada:
http://baidu.com/xxx%0a%0dSet-Cookie: test123=123

Depois que o valor do parâmetro é emendado para a cadeia URL do local, em resposta ao primeiro conjunto, você vai ver o cabeçalho de resposta:
Set-Cookie: test123=123


restaurações

Servidor recebe parâmetros sobre a extremidade frontal, antes da adição de Localização, filtrou-se necessário \ R, \ n linha terminador ou semelhante, para evitar a contaminação da entrada de dados para outro campo de cabeçalho HTTP.


Referências

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

Acho que você gosta

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