zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-27 14:21:21 时间

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

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

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


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语法很相似。

Java 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


网站防CC攻击软件防火墙和WEB防火墙大比较 CC攻击是一种成本极低的DDOS攻击方式,只要有上百个IP,每个IP弄几个进程,那么可以有几百上千个并发请求,很容易让服务器资源耗尽,从而造成网站宕机;防御CC攻击,硬件防火墙的效果不怎么明显,因为CC攻击的IP量太小,很难触发防御机制,反而是软件防火墙、WEB防火墙更容易防御。
对付CC攻击不必动用防火墙 被CC攻击的时候服务器出现的症状 一般服务器被CC*时,传奇服务器会出现7000端口对外是关闭的现象, 因为这个断口已经被堵塞了,通过命令netstat -an可以看到和如下显示雷同的记录: 7000 219.
谨防黑客通过Java 和Python的FTP注入漏洞绕过你的防火墙 本文讲的是谨防黑客通过Java 和Python的FTP注入漏洞绕过你的防火墙,最近,Java的FTP URL处理代码中的一个协议流注入漏洞已经被安全研究人员发现并公布,它允许协议流注入。根据研究,这个协议流注入漏洞可以利用现有的XXE或SSRF漏洞,让黑客通过SMTP协议从Java应用程序发送未经授权的恶意电子邮件。
低带宽DDoS攻击可瘫痪防火墙 本文讲的是低带宽DDoS攻击可瘫痪防火墙,研究人员警告:特定类型的低带宽分布式拒绝服务(DDoS)攻击,可以导致某些广为使用的企业级防火墙陷入暂时的拒绝服务状态。
云栖大讲堂 擅长前端领域,欢迎各位热爱前端的朋友加入我们( 钉钉群号:23351485)关注【前端那些事儿】云栖号,更多好文持续更新中!