产业气象站|Hash 冲突还能这么玩,你的服务中招了吗?,没想到( 二 )
这里 , 咱们给列举其中一个ApatchTomcat , 来自CVE-2011-4858[2] 。
ApacheTomcatbefore5.5.35,6.xbefore6.0.35,and7.xbefore7.0.23computeshashvaluesforformparameterswithoutrestrictingtheabilitytotriggerhashcollisionspredictably,whichallowsremoteattackerstocauseadenialofservice(CPUconsumption)bysendingmanycraftedparameters.
下面截图来自洪教授的PPT , 但内容的具体来源不详了(尝试找了下 , 没找到) , 大家参考参考就好 。

文章图片
实现hash冲突DoS攻击所须带宽
左边表示用不同的语言(框架)实现这种攻击所需要的带宽 , 右边是攻击的cpu目标 。 可以看出 , 实施这种攻击成本其实挺低的(后文石头的试验也佐证了这一点) 。

文章图片
不得不说“PHP是世界上最好的编程语言”(大家别打架) , 还是有一定道理的 , 哈哈哈哈哈哈????(一张图还不够 , 再加一张)

文章图片
上面的语言排序 , 不一定对 , 大家参考一下即可 , 不用纠结具体的准确性 。
其实要验证 , 方法当然也相对简单 , 只要找出产生冲突的不同字符串即可 , 具体语言可能不一样 。
talkischeap现在跟着我来尝试进行一次攻击吧 , 本人用自己的笔记本进行试验(配置:MBP13-inch , 2.5GHzIntelCorei7 , 16GB2133MHzLPDDR3) 。
首先构造一把hash冲突的字符串 , 下面代码是hash冲突的字符串对的实例 , 后面的其实可以通过前面排列组合生成 。
System.out.println("Aa".hashCode)System.out.println("BB".hashCode)System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBAaBBBBAa".hashCode)System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBAaBBBBBB".hashCode)//输出2112211220678584322067858432
具体生成过程本文不详述了 , 感兴趣可以看看StackOverflow上的这篇文章ApplicationvulnerabilityduetoNonRandomHashFunctions[3] , 或者参考耗子叔的这篇HashCollisionDoS问题[4] 。
然后我启用一个SpringBoot(2.2.2.RELEASE)的Web服务 , JDK1.8(其实用1.7效果更明显) 。
@RequestMapping("/hash")publicStringhash(HttpServletRequestrequest){//Demo , 简单返回参数大小和其对应hashCodeintsize=request.getParameterMap.sizeStringkey=(String)(request.getParameterMap.keySet.toArray)[0]returnString.format("size=%s,hashCode=%s",size,key.hashCode)}
先试水一把(如下图) , 看看基本功能正常 , 用curl发送请求即可 , 然后将post的字段放在文件里面(太长也只能放文件中) 。

文章图片
curl实验结果
生成的字符串不够的话 , 还可以增加并发请求 , 可以借用类似“ApacheBenchmarking”压测的工具发送请求 , 我之前也有一篇文章介绍了这个命令性能测试工具-ab简单应用 , 感兴趣的可以参考一下 。

文章图片
冲突的hashcode一样
打个断点看看效果 , 如上图所示 , 确实所有的hash值都是一样的 。 不过一次请求好像并没有影响我电脑cpu的明显变化 。
我测试的字符串已经是29859个了 , 正准备生成更多的冲突的字符串进行尝试时 , 结果仔细一看才发现请求被截断了 , 请求返回的参数size大小为10000 。 原来SpringBoot内置的tomcat给做了手脚 , 看下图 , 因为默认的请求的参数个数大小被限制成10000了 。
推荐阅读
- 产业气象站|5G基站太耗电!三大运营商正式官宣:将智能化关闭5G基站节约电费
- 产业气象站|他从不打无准备之仗,华为联手哈工大究竟想干啥?依任总性格
- 产业气象站|G是否影响健康?,张朝阳用手机保持30厘米
- 爱集微APP|“芯”势力助推游戏产业发展,芯片成为ChinaJoy的关键词之一
- 产业气象站|电力机器人“小白”上岗巡检
- 产业气象站|苏宁智能宣布五项Biu+共享政策,从生态赋能到生态共享
- 产业气象站|点赞“中国芯里的南大智慧”!华为公司CEO任正非一行访问南京大学
- 产业气象站|花多少钱收购,微软正在谈判收购TikTok美国业务
- 产业气象站|包括王兴,马云创办支付宝的本质不是为了支付,很多人没理解
- 上观新闻|半导体产业如何发展?嘉定举办的这个论坛指明了方向
