首页
社区
课程
招聘
[下载]PHP hash碰撞DOS攻击payload下载
发表于: 2012-1-17 19:40 4866

[下载]PHP hash碰撞DOS攻击payload下载

2012-1-17 19:40
4866
2011年年末,PHP, ASP.NET等各个web服务器都爆出hash碰撞造成的DOS攻击CVE-2011-4885。
具体原理性的东西参考这里,英文的:
http://stackoverflow.com/questions/8669946/application-vulnerability-due-to-non-random-hash-functions
这个是中文中描述的比较全面的文章:
http://www.cnblogs.com/xuanhun/archive/2012/01/01/2309571.html

原理弄懂了以后就知道,攻击的关键是找到hash值相同的key。事实上找hash相同的key是很容易的。hash值的取值范围是0到2^32。所以只要尝试2^32+1个key就必然能找到2个key的hash值是相同的(鸽笼原理)。
暴力的找hash碰撞的方法:使用1到254的字符构造长度为5的key。254约等于2^8,所以这种方法能构造出(2^8)^5个key。(2^8)^5远远大于2^32,可以轻易到hash相同的key。写个小程序在一分钟之内就能找到很多hash相同的key。

这些hash函数还有这样的特性:
如果hash(ab)=hash(ac),那么hash(ab123)=hash(ac123).
上面的结果明显成立,也就是说只要找到一对hash相同的key,就可以构造出任意多hash相同的key。
将得到的key URL编码成如同ab=&ac=&,%ce%ee=&%ce%ef=&这样的形式,然后post到web服务器上。PHP默认一次最大接受8M的POST数据。附件是适用于PHP的编码好的POST数据,可以直接读出用于测试或攻击。数据比较多,可以根据需要,要多少读多少。

这篇文章中说:
http://www.nruns.com/_downloads/advisory28122011.pdf
理论上POST数据中如果包含了8M的hash碰撞key,将消耗i7的CPU 4个小时的时间。

本文章只是技术讨论,除了实验以为请不要用于真正的攻击。

防范:
各个服务器都有相关的配置文件,在配置文件中可以限制POST数据的最大长度,一次POST的参数个数,CPU使用时间等等。

[ATTACH]Payload下载[/ATTACH]

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
能否说说详细的防范措施
2012-1-17 22:03
0
雪    币: 248
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
喜欢......
2012-1-17 22:47
0
雪    币: 324
活跃值: (113)
能力值: ( LV15,RANK:280 )
在线值:
发帖
回帖
粉丝
4
实验过的朋友可能发现,这个DOS会造成服务CPU利用率100%,但是某些服务器依然能正常响应HTTP请求。原因我目前还没找到,这可能与apache或者php的配置有关。望知道答案的大牛解释。
2012-2-25 13:34
0
雪    币: 435
活跃值: (1207)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
5
同问,实验的时候cpu 100,但是照样能处理http请求
2012-2-25 13:37
0
雪    币: 324
活跃值: (113)
能力值: ( LV15,RANK:280 )
在线值:
发帖
回帖
粉丝
6
马上贴个能让服务器失去响应的DOS
2012-2-25 13:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好文。收藏了。
2012-5-21 11:03
0
雪    币: 560
活跃值: (874)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个包 用什么来使用?
2013-6-30 16:08
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这样也行(⊙_⊙)
2013-6-30 22:51
0
游客
登录 | 注册 方可回帖
返回
//