悟空云课堂丨代码安全第二十二期:HTTP响应拆分漏洞

中科天齐软件源代码安全检测中心

共 993字,需浏览 2分钟

 ·

2021-05-07 14:54

NXqXkQwvYl.jpg

中科天齐倾情打造《悟空云课堂》旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。本期主题为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响应拆分漏洞样例:

c9PsrP4qyv.jpg

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

xVys4Fbwle.jpg

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

参读链接:https://www.woocoom.com/b021.html?id=bd0bd9e7bfee4fdda92b84c6f98b9dcf

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报