一次性付费进群,长期免费索取教程,没有付费教程。
进微信群回复公众号:微信群;QQ群:460500587
教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yM2EDZkVTZmlzYwYmZiVGOyM2YwUTYmF2YkhzY0UGMi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
微信公众号:计算机与网络安全
ID:Computer-network
HTTP响应拆分漏洞也称为CRLF注入漏洞。恶意攻击者将CRLF换行符加入到请求中,从而使一个请求产生两个响应,前一个响应是服务器的响应,而后一个则是攻击者设计的响应。
正常的HTTP请求如下。
> GET /header.php?page=http://www.ptpress.com.cn
> HTTP/1.1
> Host: localhost
> User-Agent: curl/7.54.0
> Accept: **
>
< Host: localhost:8080
< Date: Mon, 23 Mar 2020 11:32:31 +0000
< X-Powered-By: PHP/5.2.0
< Location: // 这里是多余的CRLF
<
浏览器接收到两个ResponseHeader,最终显示最后接收到的Body,如图1所示。
图1 响应拆分示例
在PHP中能引起响应拆分漏洞的函数有header()、setcookie()、session_id()、setrawcookie()等。在PHP5.1.2之后,该漏洞被修复,可以一次性阻止多个报文信息的发送。如果使用的是旧版本的PHP,应该设置字符替换。
header("Location: ".strtr($_GET['page'],array("\r"=>"","\n"=>"")));
一旦攻击者能够控制HTTP消息头中的字符,注入一些恶意的换行,就能注入一些会话Cookie或者HTML代码。响应拆分一旦被缓存在CDN或代理缓存服务器上,危害也是极大的。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】