CRLF injection 简单总结
2016-01-19 22:02
232 查看
CRLF injection 简单总结
简介
CRLF是”回车 + 换行”(\r\n)的简称,即我们都知道在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来提取HTTP 内容一旦我们能够控制http头,通过注入一些CRLF这样就可以控制header和body的分割线,这样我们就可以向body或是header中注入些东西了。所以CRLF Injection又叫HTTP Response Splitting,简称HRS。
Example
通常来说,网站多数会通过HTTP Header 中的location的方式来实现跳转。一般格式就是Location:xxx,简单例子
HTTP/1.1 302 Moved Temporarily Date: Fri, 27 Jun 2014 17:52:17 GMT Content-Type: text/html Content-Length: 154 Connection: close Location: http://www.xxx.com[/code]
如果location直接从URL里获得的话, 输入HTTP/1.1 302 Moved Temporarily Date: Fri, 27 Jun 2014 17:52:17 GMT Content-Type: text/html Content-Length: 154 Connection: close Location: http://www.xxx.com Set-cookie:JSPSESSID=12345
瞬间就设置上了一个session,也就是“会话固定漏洞”
此外,比较有价值的是很容易造出一个能够轻松绕过filter的XSS,还是刚才那个例子,如果我们输入
那么Header就变成了HTTP/1.1 302 Moved Temporarily Date: Fri, 27 Jun 2014 17:52:17 GMT Content-Type: text/html Content-Length: 154 Connection: close Location: http://www.xxx.com <svg/onload=prompt(1)>
那么网页的内容中就会有一个反射型的XSS了。修复
只需要对输入进行过滤,过滤掉 '\r' 和 '\n',从而避免输入的数据污染到其他HTTP头。
相关文章推荐
- Python 5.4 定制类
- 机器学习导论
- VirtualBox安装时发生严重错误的解决办法
- 【LeetCode OJ 263】Ugly Number
- kingbaseES表存在,但是select查询不到,提示表不存在处理方式
- ExtJS stores - load JSON only once
- leetcode--Pow(x,n)
- Android进阶笔记:Messenger源码详解
- 2015-2016 ACM ICPC Baltic Selection Contest E. Permutation Polygon
- Java异常时的返回值
- 富文本编辑器——kindeditor+七牛
- Java堆和栈
- 【环境配置】配置sdk
- paper 10:支持向量机系列七:Kernel II —— 核方法的一些理论补充,关于 Reproducing Kernel Hilbert Space 和 Representer Theorem 的简介。
- C语言 -- 折半查找小程序
- java枚举使用详解
- TCP协议的性能评测工具 — Tcpdive开源啦
- Genymotion-启动报错Unable to load VirtualBox engine....
- 系统自带的社交分享
- TCP协议的性能评测工具 — Tcpdive开源啦