http 漏洞解决办法
2017-08-06 20:15
260 查看
HTTP协议Content Lenth限制漏洞导致拒绝服务攻击
漏洞描述:在HTTP协议中,当使用POST方法时,可以设置ContentLenth来定义需要传送的数据长度,但是HTTP协议中并没有对ContentLenth的大小进行限制,这使得拒绝服务-内存耗尽攻击成为可能。
在IIS中,用户POST数据时,系统先将用户上传的数据存放在内存中,当用户完成数据传送(数据的长度达到ContentLenth时),IIS再将这块内存交给特定的
文件或CGI处理;假如用户POST非常大的数据(通过多次数据发送)例如ContentLenth:999999999,在传送完成前,内存不会释放,攻击者可以利用这个缺陷,连续向WEB服务器发送垃圾数据直至WEB服务器内存耗尽。在Web服务器内存不足的时候,我们可以明显的看到系统速度下降、硬盘读写增多(缓存)等现象的出现。
值得注重的是,这种攻击方法基本不会留下痕迹:
首先,由於数据传送不会完成(只要ContentLenth足够大,比如Content-Length:2147483647),所以IIS日志无法记录(IIS日志是在操作完成后才记录的)
其次,由於进行的是正常的POST操作,而且数据是缓慢送入WEB服务器的,因此防火墙很难发现这样的操作。(除非在防火墙上
对ContentLenth进行监测)
第三,这种攻击对於攻击者的主机来说几乎没有任何负荷,既不会消耗CPU更不会占用内存,最多是占用了部分带宽。
解决方法:
编写相应的Filter,对於过大的ContentLenth进行过滤。
相关文章推荐
- 常见web漏洞——启动了不安全的HTTP方法解决办法
- X-Scan扫描端口80,443提示http TRACE 跨站攻击漏洞解决办法
- Java Web项目漏洞: 检测到目标URL存在http host头攻击漏洞解决办法
- Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法
- X-Scan扫描端口80,443提示http TRACE 跨站攻击漏洞解决办法
- Slow HTTP Denial of Service Attack 漏洞解决办法
- Slow HTTP Denial of Service Attack 漏洞解决办法
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- Windows Server 2012 R2配置IIS搭载PHP发生HTTP500解决办法
- 转:AndroidStudio导入httpmime jar编译不通过的解决办法
- GBK字符集下addslashes函数的注入漏洞及BUG的解决办法
- iOS9 HTTP 不能正常使用的解决办法
- 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- 另一应用程序已使用 HTTP.SYS 注册了该 URL。的解决办法。
- GDI+中发生一般性错误的解决办法 from http://www.cnblogs.com/winzheng/archive/2008/12/23/1360440.html
- JavaScript(XMLHttpRequest)跨域访问解决办法及安全性问题
- Android中使用HttpConnection发送中文到服务器端乱码解决办法
- Http网络传递参数中文乱码问题解决办法
- HTTP 错误 500.XX - Internal Server Error 解决办法