Python与Java曝漏洞,黑客利用FTP注入攻击可绕过防火墙

研究人员最近发现,Java和Python运行时都存在漏洞,它们未能正确验证FTP URL中的特殊字符,最终导致黑客甚至能够绕过防火墙访问本地网络。

上周六,安全研究员Alexander Klink公布了一种很有趣的攻击方式,他利用Java应用中的XXE(XML External
Entity)漏洞发送邮件。XXE漏洞就是欺骗应用去解析构建的XML文件,从而让XML解析器泄露敏感信息如文件、目录列表甚至是服务器上运行的进程。

Klink演示相同类型的漏洞还可以用来欺骗Java runtime向远程服务器发起FTP连接,URL形式是:


  1. ftp://user:password@host:port/file.ext 

结果发现Java FTP客户端并不会过滤特殊的CR和LF字符,而会解析这些字符。CRLF的意思就是回车(CR, ASCII 13, \r)
换行(LF, ASCII 10, \n)。在FTP URL中插入这些字符会导致Java FTP客户端执行这些命令,甚至还可以执行SMTP
(Simple Mail Transfer Protocol)命令,因为SMTP与FTP语法很相似。

Klink的演示中,黑客可以利用漏洞强迫Java程序向SMTP服务器发送邮件。

Klink在博客介绍了攻击场景:“当你能从一台能够解析XML的服务器连接到一台无限制(甚至没有垃圾邮件、病毒邮件过滤)的内部邮件服务器时,这个攻击就会非常有意思。”

Python和Java的新漏洞

看到Klink的攻击后,来自Blindspot Security的研究员Timothy Morgan又公开了一种类似的攻击方式,这种攻击方式能够针对Java和Python的FTP——由于该攻击可被用来绕过防火墙,因此更为严重。

Morgan把攻击称为“通过恶意URL的FTP协议流注入”,这种攻击和利用了缺少CRLF过滤特性注入恶意FTP命令的方法是类似的。

Morgan没有注入SMTP 命令,而是利用了FTP PORT命令让客户端连接FTP服务器的指定TCP端口。

安全人员指出,很多基于Linux的全状态数据包检测型防火墙(SPI),包括商业防火墙,会支持传统模式的FTP,当检测到来自客户端的FTP流量中的PORT命令时就会自动打开TCP端口,并且转发到那个FTP客户端的局域网IP。

这种攻击向量已经存在多年,所以conntrack的开发者们会加入额外的检查步骤,conntrack是一套大部分防火墙都会用到的Linux工具。加入检查之后,端口只会在PORT命令出现在TCP包开始的时候打开,这样就能确保真的是客户端发送了命令。

此处对黑客而言,攻击需要解决两个问题:

1. 发现客户端的内部IP地址,从而伪造PORT命令;

2. 调整客户端与服务器端的TCP包,让PORT命令落到包的开头

Morgan称他已经找到了解决这两个问题的方法,就是通过“通过恶意URL的FTP协议流注入”,并且他已经开发了PoC exp打算在Oracle和Python修复FTP客户端代码后公开。

“整个攻击(包括判断受害者内部IP的请求)是通过三个SSRF(服务器端请求伪造)实现的,这三个攻击打开了TCP端口”,Morgan周一在博客中说到,“每次额外的SSRF攻击都可以打开一个新的TCP端口。”

利用方法

利用漏洞的方法有很多,包括攻击那些安装了Java的用户。用户甚至都不需要执行恶意Java applet,因为exp可以通过Java Web开始程序传送。

“如果一个安装了Java的桌面用户访问了一个恶意网站,即使Java applet被关闭,还是可以触发Java Web Start解析JNLP文件,文件中可以包含恶意FTP代码,从而触发漏洞。”

攻击者还可以利用中间人或者利用SSRF/XXE漏洞来攻击那些运行Java应用的服务器。

Morgan表示,他成功攻击了运行最新内核的Linux防火墙,而来自Palo Alto Networks和思科的防火墙在默认设置下也未能幸免。虽然只测试了两款商业防火墙,但他预计受此影响的防火墙不在少数。

安全建议

建议防火墙厂商在Java和Python工程师修复漏洞之前关闭传统的FTP转换模式。

用户应该禁用浏览器的Java插件并且取消.jnlp文件与Java Web Start的关联。同时,对Java和Python应用应该审计SSRF和XXE漏洞。

作者:Sphinx
来源:51CTO

时间: 2024-08-02 06:22:58

Python与Java曝漏洞,黑客利用FTP注入攻击可绕过防火墙的相关文章

北京地铁系统曝漏洞黑客可扰乱地铁运行

北京地铁系统曝漏洞 黑客可扰乱地铁运行新浪科技讯 12月16日下午消息,安全专家@赵武360今天在微博上透露,北京地铁官方后台管理系统存在漏洞,黑客可侵入后台控制地铁线路.官方动态等重要信息.北京地铁官方 微博回应已将此情况告知设备厂家,并表示感谢.北京地铁后台管理系统的漏洞是由一名网名啊的白帽子发现,并提交到360补天漏洞响应平台.白帽子是安全的建设者而非破坏者.根据补天平台的漏洞信息显示,黑客可利用该漏洞直接登录系统管理员账号,然后任意对北京地铁的站点.周边景点.热线电话等信息进行增删或修改

密码过长也不安全 易被黑客利用发起DoS攻击

据国外媒体报道,Django开源Web应用框架周一放出一款安全补丁,指出过长的密码其实也存在安全问题,容易被黑客利用成为DoS攻击手段之一. 过去相当一段时间,我们都强调要用复杂且较长的密码来保护我们的数字资产.大多数网站在保存用户密码时会使用PBKDF2等算法进行加密,以让明文信息得以哈希值的方式保持于数据库中.然而,这种加密过程会要求服务器执行较为复杂的计算,而密码越长,所消耗的计算时间也就越长. 根据Django今日的声明指出,一段长达1兆字节的密码若采用PBKDF2算法进行加密,需耗费服

Google Talk被黑客利用 发动钓鱼攻击

近期开始有黑客利用Google Talk欺骗用户,发起钓鱼攻击. 黑客会冒充用户好友发送虚假留言,一旦用户上当就可能会被黑客骗取到其Google Talk的账号和密码. 如果您是Google Talk用户,并且收到好友发来信息说:"Hi,see this video!http://tinyurl.com/xyz".在点击前先和您的好友多次确认下,小心别掉入黑客的圈套里. 如果有用户不小心点击了这类虚假链接,会被重新定向到Viddyho.com.看到一个简洁的登陆页面,上面要求用户输入G

安卓再曝漏洞 黑客可假冒正规应用

新浪科技讯 北京时间7月30日早间消息,周二发布的一份研究报告显示,谷歌Android操作系统存在一项安全漏洞,可以让黑客假冒受信任的正规应用,从而劫持用户的智能手机或平板电脑.安全公司Bluebox Security在报告中表示,根本问题在于Android校验应用身份时采取的方式.验证身份是网络世界中最根本的问题之一.例如,登录银行账号的人是否是该账号的所有者?某款应用是否真如其所宣称的那样?总部位于旧金山的Bluebox的主要业务是帮助企业保护其移动设备上的数据安全,因此该公司的员工正在研究

报告:黑客利用勒索软件每年得手约3400万美元

美国思科系统公司日前发布报告说,目前黑客利用勒索软件攻击呈上升趋势,据推算每年可得手约3400万美元,而机构和个人等被侵犯对象对此尚无准备. 勒索软件攻击从2013年开始出现,是近年来最主要的网络威胁之一.作为网络解决方案供应商,思科在<2016年中网络安全报告>中推算,黑客利用勒索软件攻击平均每次得手300美元,平均每月超过9500人为此支付"赎金". 报告说,网络黑客使用的系列勒索手段包括:频繁创建虚假网站,用以吸引潜在勒索对象浏览;借助网站内钓鱼软件扫描用户电脑操作系

Java Python的FTP注入漏洞 足以绕过大多数防护墙 目前没有官方补丁

这个漏洞足以绕过大多数防火墙的默认设置了,java和python都没有对恶意构造的FTP请求进行校验,目前Oracle和Python Software Foundation官方尚未修复该漏洞.绿盟科技发布<Java和Python应用的FTP命令注入漏洞安全威胁通告>,通告全文如下: 2017年2月20日,blog.blindspotsecurity.com 发布文章称,由Java开发的应用,存在潜在的FTP命令注入.攻击者可以利用该漏洞借助XXE或SSRF等其他漏洞发送未授权的电子邮件.攻击者

WP8.1系统也曝出漏洞 恐被黑客利用获得应用权限

再完善的系统,一定都存在漏洞,都有可能被黑客利用.Windows Phone 8.1已经发布有一段时间了,虽然它没有Android和iOS那样受欢迎,但是这并不妨碍黑客们寻找存在于它内部的漏洞.最近,来自XDA开发者论坛的黑客就在WP8.1系统上发现了一个比较重大的漏洞,名为DJAmol的黑客发现一个简单方法可以替换OEM可信赖应用内容,该应用转移到SD卡后可以继承原生应用的权限.DJAmol通过Info and Settings进行了试验,他将Info and Settings移动到SD卡,然

Java反序列化漏洞利用的学习与实践

本文讲的是Java反序列化漏洞利用的学习与实践, 利用DeserLab 建议你在阅读本文之前,先阅读<攻击Java反序列化过程>,这样你就会对java反序列化有一个比较清晰的认识.除此之外,这篇文章还提到了一个"DeserLab"的演示应用.为了有效利用反序列化漏洞,理解序列化的原理以及反序列化漏洞利用的工作原理(如面向属性的编程原理),研究人员就要找到一个可供模拟的实验环境,而"DeserLab"就是一个这样的环境. 要想利用一个漏洞,通常的方法首先是

创建Java安全框架 避免Java漏洞被利用

导读:据最近的报道,针对Java的袭击数量一直在稳步上升.在这篇文章,我们将谈到为什么Java容易成为攻击者的目标,以及企业应该如何创建Java安全框架,从而成功抵御基于Java的漏洞攻击. 虽然蠕虫病毒.Zeus僵尸网络和极光行动是去年的头条新闻,但是据Krebs On Security的Brian Krebs和微软的Holly Stewart最近的报道,针对Java的袭击数量一直在稳步上升.正如Stewart写道,针对Java的攻击和成功攻击的数量快速增加,最近甚至超过了针对PDF和其他目标