Java & Python 未修复漏洞导致跨越防火墙大混乱
作者: 日期:2017年02月22日 阅:3,689

发现该漏洞的程序员说:当你找到进入邮件服务器的路时,事情就变得好玩了。

giant_bug_destroys_city_shutterstock

Java & Python有个可以用来翻越防火墙的漏洞。因为俩漏洞都还没被补上,或许今儿是催促你公司开发人员的好日子。

该Java漏洞意味着,通过其FTP实现进行的协议注入,可欺骗防火墙放行互联网TCP连接接入内部主机。

亚历山大·科林克和 Blindspot Security 公司的蒂莫西·摩根,对这两个漏洞有进一步的阐述。

科林克的发现是:Java的 XMLeXternal Entity (XEE)错误处理了FTP连接,因为它没有对Java传到服务器的用户名进行语法检查。

特别是,cr和lf应该是拒绝接受的,但却被放行,让非FTP命令得以注入到连接请求中。科林克的证明展示了如何在FTP连接尝试(即便连接失败)中发送SMTP电子邮件。

EHLO a<CR><LF>

MAIL FROM:<a@example.org><CR><LF>

RCPT TO:<alech@alech.de><CR><LF>

DATA<CR><LF>

From: a@example.org<LF>

To: alech@alech.de<LF>

Subject: test<LF>

<LF>

test!<LF><CR><LF>

.<CR><LF>

QUIT<CR><LF>

越来越糟

科林克认为,该攻击在特定场景下尤其有趣——从执行XML解析的主机上访问(不受限的,甚至没有垃圾邮件或恶意软件过滤的)内部邮件服务器时。

摩根的贡献,则是实现了用同样的动作经过几步过程突破防火墙高位端口:

1. 获取一个内部IP地址——这很简单:发个URL,看看客户端是怎么动作的,然后尝试另一个,直到攻击成功。

2. 包对齐——这就是该攻击成功的秘诀了。FTP是同步的,意味着两边都在等待自己发出的每一条命令的响应。如果这里出错了,攻击失败!

摩根称他将暂时不公布概念验证脚本,先看看甲骨文(和Python开发者)是怎么回应本披露的。

不过,他设想自己的漏洞利用也可用于中间人攻击、服务器端请求伪造、XEE攻击等等——一旦越过防火墙,桌面主机即便没有安装Java也能被攻击了。

Python同样脆弱,其urllib和urllib2库就是入手点。不过,该注入似乎仅限于在URL中指定目录名的攻击。

至于缓解办法,摩根建议:在桌面和浏览器中禁用Java;在所有防火墙上禁用“经典模式”的FTP。

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章