发现该漏洞的程序员说:当你找到进入邮件服务器的路时,事情就变得好玩了。
Java & Python有个可以用来翻越防火墙的漏洞。因为俩漏洞都还没被补上,或许今儿是催促你公司开发人员的好日子。
该Java漏洞意味着,通过其FTP实现进行的协议注入,可欺骗防火墙放行互联网TCP连接接入内部主机。
亚历山大·科林克和 Blindspot Security 公司的蒂莫西·摩根,对这两个漏洞有进一步的阐述。
科林克的发现是:Java的 XMLeXternal Entity (XEE)错误处理了FTP连接,因为它没有对Java传到服务器的用户名进行语法检查。
特别是,cr和lf应该是拒绝接受的,但却被放行,让非FTP命令得以注入到连接请求中。科林克的证明展示了如何在FTP连接尝试(即便连接失败)中发送SMTP电子邮件。
越来越糟
科林克认为,该攻击在特定场景下尤其有趣——从执行XML解析的主机上访问(不受限的,甚至没有垃圾邮件或恶意软件过滤的)内部邮件服务器时。
摩根的贡献,则是实现了用同样的动作经过几步过程突破防火墙高位端口:
1. 获取一个内部IP地址——这很简单:发个URL,看看客户端是怎么动作的,然后尝试另一个,直到攻击成功。
2.包对齐——这就是该攻击成功的秘诀了。FTP是同步的,意味着两边都在等待自己发出的每一条命令的响应。如果这里出错了,攻击失败!
摩根称他将暂时不公布概念验证脚本,先看看甲骨文(和Python开发者)是怎么回应本披露的。
不过,他设想自己的漏洞利用也可用于中间人攻击、服务器端请求伪造、XEE攻击等等——一旦越过防火墙,桌面主机即便没有安装Java也能被攻击了。
Python同样脆弱,其urllib和urllib2库就是入手点。不过,该注入似乎仅限于在URL中指定目录名的攻击。
至于缓解办法,摩根建议:在桌面和浏览器中禁用Java;在所有防火墙上禁用“经典模式”的FTP。
(责任编辑:安博涛)