Tomcat远程拒绝服务漏洞分析(CVE-2010-2227)

作者:空虚浪子心      出处:IT专家网

  本篇是个分析POC的过程,压了N个月了,现在才发出来。使用分析出的POC,Tomcat除了最新的版本(具体见官网),以及JBOSS除了最新版本,都可以打,POC见文章。JBOSS官方已经偷偷发布了新版,其中包括漏洞修补,但是还没有发布公告。

  这个漏洞真的够狠!只需要一个数据包,直接打死!见图,控制台信息。

  虽然官方没给出POC,但是通过简单分析,就能搞出来!

  (下图是TOMCAT受到攻击时爆的)

 1.jpg

  简单分析:

  我看到官方补丁是这样打的。

  http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?r1=952026&r2=958977&pathrev=958977&diff_format=h

2.jpg

  这一句改为了

3.jpg

  pluggableFilterIndex的值为

 4.jpg

int类型的最大值,而一个int永远不会大于int类型的最大值,所以说,官方的补丁中,永远不希望程序能走到这里。

  再看看另一个文件

  http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java?r1=533164&r2=958977&pathrev=958977&diff_format=h

  加入了

  if (buffered != null) {

  的判断。

  也就是说,只要我们发个数据包,让程序流程正常的走到这里。并且buffered是null,即可触发漏洞,它就挂了!

  继续向前分析,通过几次debug,很容易定位只要满足两个条件,就可以走到这里:

  1、http头上transfer-encoding: buffered

  2、使用HTTP/1.1协议

  POC

  所以随便一台tomcat,非最新版的就可以,之后发包(POC),这都是head头:

5.jpg

  经过我测试,换了两个tomcat6.X的版本,都是直接挂掉!

  我们看下异常信息(这个是JBOSS爆的):

6.jpg

  是org.apache.coyote.http11.filters.BufferedInputFilter出的异常。

  经过我后来测试发现,JBOSS也存在这个漏洞,原因是JBOSS也使用了这个包,它的核心本就是tomcat的!打了JBOSS后,有时候还会造成JBOSS重启,如果第一个包没打死,就不断的发几十个包,回头看看,已经死了,效果非常明显!

  官方推荐使用:

  apache-tomcat-6.0.28 经过我测试,不受影响。

  apache-tomcat-5.5.30 经过我测试,不受影响。

  官方描述漏洞时提到,说如果前端使用apache代理,就不会有问题,原理是apache遇到这个header直接就被拦截,然后返回错误了。

  但是这也许并不是绝对安全,如果有apache和tomcat对某些字符含义,理解的不一致,或者中间层有字符过滤的mod之类,也许会被绕过。这个纯属YY

  我测试过的版本:

  apache-tomcat-5.5.29 经过我的测试,一打就挂!

  apache-tomcat-6.0.26 经过我的测试,打了好像没挂,但是报异常了,之后所有的正常访问,都会报控制台异常,我相信它也坚持不了多长时间,轮训打就会挂。

  Tomcat某6.x以及某5.x版本,也是直接挂,我忘了版本号了。如果你的是嵌入式系统里安装了tomcat对外服务,就自求多福吧。

  jboss-6.0.0.20100429-M3 一打就挂,不断的打,会重启!

  具体现象:

  先是无法访问,之后是tomcat不知道从哪里弄来的文件,直接展示了。

  每次刷新都会变文件内容,无论怎么显示,都不是正常页面,应该是buffer挂了!

  下图应该是个htm的,但是我直接访问,没有看源码,就是这样的页面。

7.jpg

  补丁和描述以及解决办法就不说了,见官方公告。

  http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2227

  http://tomcat.apache.org/security-6.html

  JBOSS偷偷上了补丁的版本:

  http://repository.jboss.org/jboss/web/2.0.0.GA_CP14-brew/src/

发表评论?

0 条评论。

发表评论