web网站中常见攻击之HTTP Headers攻击
2019-05-06 14:34:48 【

凡是用浏览器查看任何WEB网站,无论你的WEB网站采用何种技术和框架,都用到了HTTP协议


HTTP协议在Response header和content之间,有一个空行,即两组CRLF(0x0D 0A)字符


这个空行标志着headers的结束和content的开始


攻击者可以利用这一点, 只要攻击者有办法将任意字符“注入”到headers中,这种攻击就可以发生


以登陆为例:有这样一个url


http://localhost/login?page=http%3A%2F%2Flocalhost%2Findex


当登录成功以后,需要重定向回page参数所指定的页面。


下面是重定向发生时的`response headers


HTTP/1.1 302 Moved


Temporarily Date: Tue, 17 Aug 2010 20:00:29 GMT


Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4


FrontPage/5.0.2.2635 Location: http://localhost/index


假如把URL修改一下,变成这个样子


http://localhost/login?page=http%3A%2F%2Flocalhost%2Fcheckout%0D%0A%0D%0A%3Cscript%3Ealert%28%27hello%27%29%3C%2Fscript%3E


那么重定向发生时的reponse会变成下面的样子:


HTTP/1.1 302 Moved


Temporarily Date: Tue, 17 Aug 2010 20:00:29 GMT


Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4


FrontPage/5.0.2.2635 Location: http://localhost/checkout<CRLF> <CRLF> <script>alert('hello')</script>


这个页面可能会意外地执行隐藏在URL中的java script


类似的情况不仅发生在重定向(Location header)上,也有可能发生在其它headers中


如`Set-Cookie header


这种攻击如果成功的话,可以做很多事,例如:执行脚本、设置额外的cookie (<CRLF>Set-Cookie: evil=value) 等


避免这种攻击的方法,就是过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF(空行)


---------------------

作者:rugu_xxx

来源:CSDN

原文:https://blog.csdn.net/sinat_36629696/article/details/80748665

版权声明:本文为博主原创文章,转载请附上博文链接!


】【打印关闭】 【返回顶部
上一篇十一本关于网络安全的好书 下一篇web网站中常见攻击之Cookie攻击