阅读 129

代码安全 | 第二十二期:HTTP响应拆分漏洞

代码安全 | 第二十二期:HTTP响应拆分漏洞

本期主题为HTTP响应拆分漏洞的相关介绍。

一、什么是HTTP响应拆分?

HTTP响应拆分是由于应用程序未对用户提交的数据进行严格过滤,如果用户输入的值中注入了CRLF字符,有可能改变HTTP报头结构。

HTTP响应拆分漏洞,也叫CRLF注入攻击。CR、LF分别对应回车(即URL编码%0d或\r)、换行(即URL编码%0a或\n)字符。HTTP头由很多被CRLF组合分离的行构成,每行的结构都是“键:值”。

攻击者可以在HTTP标头中包含攻击的报文数据,从而让浏览器按照攻击者想要达到的目的进行HTTP响应。 当HTTP请求中包含CR和LF字符时,服务器可能会响应输出流,该输出流被解释为两个不同 HTTP响应(而不是一个)。攻击者可以实现对第二个响应报文的控制并发起攻击。例如跨站点脚本和缓存中毒攻击。

二、HTTP响应拆分漏洞构成条件有哪些?

满足以下条件,就构成了一个该类型的安全漏洞:

1、数据通过不受信任的源(最常见的是HTTP请求)进入web应用程序;

2、数据包含在发送给web用户的HTTP响应头中,而不会验证是否存在恶意字符。

三、HTTP响应拆分漏洞会造成哪些后果?

关键词:修改应用程序数据;获取特权或假定身份;

HTTP报头中的CR和LF字符可能会让攻击者控制应用程序打算发送的其余报头和响应主体,并允许他们创建完全在其控制下的附加响应。

四、HTTP响应拆分漏洞的防范和修补方法有哪些?

1、限制用户输入的CR和LF,或者对CR和LF字符正确编码后再输出,以防止注入自定义HTTP头;

2、使用源代码静态分析工具进行自动化的检测,可以有效的发现源代码中的HTTP响应拆分问题。

五、HTTP响应拆分漏洞样例:

 

用Wukong软件检测上述程序代码,则可以发现静态代码中存在着“HTTP响应拆分” 导致的代码缺陷,如下图:

 

HTTP响应拆分在CWE中被编号为CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers('HTTP Response Splitting')

软件安全是网络安全的最后一道防线。

来源https://www.cnblogs.com/zktq/p/14831032.html

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐