Sep 03 2016

Squid远程拒绝服务漏洞分析

首页 » 漏洞收集 » Squid远程拒绝服务漏洞分析   

简介】


Squid Cache是HTTP代理服务器软件。Squid用途广泛的,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。 

2016年2月23日。Squid官方发布了安全公告,指出修复多个远程拒绝服务漏洞http://www.squid-cache.org/Advisories/SQUID-2016_2.txt),这几个漏洞危害较大,只需要一个HTTP请求即可远程DoS squid cache server。 


【分析】


笔者对其中一个漏洞补丁进行了分析,发现漏洞的缘由主要由assert函数引起的(http://www.squid-cache.org/Versions/v3/3.5/changesets/squid-3.5-13991.patch) 。

Assert函数在C程序中称为断言(assertion),用来提示一些可能存在的错误。主要用于程序调试。 


函数用法: 

#include  void assert( int exp );

功能: 
assert用于错误检测,如果表达式exp的结果为零(假),则向STDERR打印错误信息并退出程序(崩溃),为1(真),则程序继续运行。

Squid 程序在禁止http header 字符串大小为64KB的判断时使用的assert函数 。

 

1.jpg

 

 

另外,Squid对缓存实现了Vary机制,Vary机制是http1.1 协议的新特性,可使server端可以根据用户请求返回给用户不同的内容。Squid的vary机制大致是先对vary http头内容进行逐个压缩缓存,再通过缓存进行索引。漏洞触发的代码就发送在缓存vary头内容,利用assert对缓存内容限制在64KB。 

当攻击者发送带有超过64KB大小的Vary头的HTTP请求时,触发assert函数错误,打印错误信息,程序崩溃。

2.jpg

 

 

如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: Squidddos

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «Bypass UAC的一个实例分析 | Hack Redis via Python urllib HTTP Header Injection»

你肿么看?

你还可以输入 250/250 个字

微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~

友情链接:万达主管QQ  万达直属QQ  万达娱乐直属  万达娱乐招商  万达招商QQ  万达登录  测试  guoqibee.com  万达登录  万达开户