多个厂商无客户端SSL VPN产品绕过同源策略漏洞
发布日期:2009-11-30
更新日期:2009-12-02
受影响系统:Cisco ASA 8.2.1
Cisco ASA 8.1
Cisco ASA 8.0
Cisco ASA 7.2
Cisco ASA 7.1
SonicWALL SSL-VPN 4000
SonicWALL SSL-VPN 200
Juniper Networks SSL VPN SA700
描述:
BUGTRAQ ID:
37152
CVE ID:
CVE-2009-2631
无客户端SSL VPN允许用户无需安装传统的VPN客户端就可以基于浏览器访问内部和外部资源。
web vpn服务器一般使用如下过程与客户端进行交互:
1. 用户使用Web浏览器向Web VPN提供凭据。
2. Web VPN对用户进行认证并为会话分配ID,并以Cookie的形式发送到用户浏览器。
3. 然后用户可以浏览内部资源,如Webmail服务器或内网Web Server。
当Web VPN检索网页时,会对超级链接进行重写以便通过web VPN访问。例如,http://<www.intranet.example.com>/mail.html 链接会变为https://<webvpnserver>/www.intranet.example.com/mail.html 。所请求webserver所设置的Cookie在传送给用户浏览器之前会转换为完全唯一的Cookie以防两个重名的Cookie冲突。例如,intranet.example.com所设置的会话ID Cookie在发送到用户浏览器之前会重新命名为intranet.example.com_sessionid。此外,Web VPN会替换对document.cookie等特定HTML DOM对象的引用。这些DOM对象会被返回该DOM对象值的脚本替换,这样就可以在所请求站点域的安全环境中进行访问。
如果攻击者所创建的网页可以混淆document.cookie元素以防被Web VPN重写,则返回页面中的document.cookie对象就会代表Web VPN域所有的用户Cookie。这个document.cookie中包含有Web VPN会话ID cookie本身和通过Web VPN所请求站点设置的唯一Cookie,攻击者可以利用这些Cookie劫持用户的VPN会话和依赖于Cookie识别会话的Web VPN所访问的所有其他会话。
此外攻击者还可以创建包含有两个帧的页面,其中一个为隐藏页面,另一个显示合法的内网站点。隐藏的帧可以记录另一个帧中所有的键盘动作,并经过Web VPN句法重写后以XMLHttpRequest GET参数的形式将其发送给攻击者的站点。
请注意如果允许VPN服务器连接到任意Internet站点,则Internet上任意站点都可以利用这个漏洞。
<*来源:Michal Zalewski (
lcamtuf@echelon.pl)
链接:
http://www.kb.cert.org/vuls/id/261869
http://marc.info/?l=full-disclosure&m=114979973327544&w=2
*>
建议:
临时解决方法:
* 仅限可信任的域重写URL
* 将VPN server的网络连接仅限于可信任的域
* 禁用URL隐藏功能
厂商补丁:
Cisco
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.cisco.com/warp/public/707/advisory.html
SonicWALL
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.sonicwall.com
Juniper Networks
----------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.juniper.net/浏览次数:3863
严重程度:0(网友投票)