你无法忽视的:HTTP Post Denial Of Service

本文系转载,原文地址:http://hi.baidu.com/aullik5/blog/item/c41ffefbd96a3bceb48f3132.html

前些天我就通过一则新闻关注到了这个即将在OWASP大会上由Wong Onn Chee 和 Tom Brennan演示的攻击。现在OWASP大会开完了,paper也出来了:

http://www.owasp.org/images/4/43/Layer_7_DDOS.pdf

作者曾表示这种攻击一早出现在中国,不知道是哪路神仙整出来的。

此攻击和slowloris有点类似,略有不同的是利用的HTTP POST:POST的时候,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。这样当客户端连接多了后,占用住了webserver的所有可用连接,从而导致DOS。

当初看完新闻,我就有几个猜想:
1. 不需要作者说的要有form,直接HTTP POST即可,比如 POST / HTTP/1.1,因为这是针对webserver的攻击
2. 也不需要作者说的那种找很多客户端,比如java applet反射攻击;直接找一台PC就能打出这种攻击效果
3. 利用的是apache 的 maxclients的限制

本来我是想着自己写个POC的,无奈太忙了,拖到今天,别人的POC都出来了~~以上3个猜想也就都得到了证实。

我们看这篇文章:

http://www.acunetix.com/blog/web-security-zone/articles/http-post-denial-service/

Bogdan Calin写了一个wvs的脚本,在一台PC上实现了这个功能

Photobucket

恭喜两位作者找到了一个hold住maxclients的方法,这是我以前想干但没干成的事。

如果apache不工作了,同时在errorlog里发现了如下日志,则很有可能是被这种攻击盯上了:

$tail -f /var/log/apache2/error.log

[Mon Nov 22 15:23:17 2010] [notice] Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.6 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g configured — resuming normal operations
[Mon Nov 22 15:24:46 2010] [error] server reached MaxClients setting, consider raising the MaxClients setting

遗憾的是apache和MS目前都无临时解决方案!!

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s