尝试访问

以下示例演示了上述攻击以及使用Silverlight和Flash技术的对应攻击:

http://mdsec.net/shop/154/

http://mdsec.net/shop/167/

http://mdsec.net/shop/179/

5.3.5 附加调试器

要了解和攻击浏览器扩展,反编译是最全面可靠的方法。但是,对于包含成千上万行代码、功能复杂的大型组件而言,观察组件的执行过程,并将其中的方法和类与界面中的关键功能进行关联,往往会更加简单。而且,采用这种方法还可以避免在解释和反编译经过模糊处理的字节码时遇到的困难。通常,只需要执行某项关键功能,更改其行为,以消除在组件中实施的控件,即可达到特定目的。

由于调度器在字节码级别运行,因此,可以使用调试器轻松控制并了解组件的执行过程。具体而言,如果可以通过反编译获得源代码,就可以在特定的代码行设置断点,并通过观察组件在执行过程中采用的代码路径来判定通过反编译获得的信息是否正确。

虽然针对所有浏览器扩展技术的高效调试器尚不成熟,但Java applet能够为调度提供有效支持。JavaSnoop是目前最高效的调度器。JavaSnoop是一款Java调试器,它能够与Jad集成,以用于反编译源代码、在应用程序中跟踪变量,并在方法中设置断点来查看和修改参数。JavaSnoop可用于直接“钩住”在浏览器中运行的Java applet(如图5-6所示),并可用于篡改方法的返回值(如图5-7所示)。

img133a

图5-6 JavaSnoop可以直接“钩住”在浏览器中运行的Java applet

img133b

图5-7 确定适当的方法后,可以使用JavaSnoop篡改方法的返回值

img001  注解  在加载目标applet之前,最好首先运行JavaSnoop。JavaSnoop将取消Java安全策略设置的限制,以便于针对目标执行操作。在Windows中,JavaSnoop通过向系统中的所有Java程序授予各种权限来取消限制,因此,在执行操作后,需要确保完全关闭JavaSnoop并恢复相关权限。

JSwat是另一个Java调试工具,该工具提供大量配置选项。有时,在包含许多类文件的大型项目中,最好是反编译、修改并重新编译关键的类文件,然后使用JSwat将其“热包装”到正在运行的应用程序中。要使用JSwat,需要使用JDK中的appletviewer工具启动一个applet,然后将JSwat连接到该applet。例如,可以使用以下命令:

img134a

处理Silverlight对象时,可以使用Silverlight Spy工具监视组件在运行时的执行情况。在将相关代码路径关联到用户界面中的事件时,该工具可提供很大的帮助。下载Silverlight Spy的URL如下所示:

img134b

5.3.6 本地客户端组件

一些应用程序需要在用户的计算机中执行基于浏览器的VM沙盒内无法执行的操作。根据客户端安全控制,以下是这类功能的一些示例:

img002 验证用户是否装有最新的病毒扫描器;

img002 验证代理服务器设置及其他企业配置是否有效;

img002 集成智能卡读取器。

通常,这些操作需要使用本地代码组件,这些组件将集成本地应用程序功能和Web应用程序功能。本地客户端组件一般通过ActiveX控件传送。ActiveX控件是在浏览器沙盒以外运行的定制浏览器扩展。

由于没有对应的中间字节码,相比于其他浏览器扩展,解译本地客户端组件要困难得多。但是,我们在避开客户端控件时采用的方法对于本地客户端组件仍然适用,不过,这时需要采用一组不同的工具。以下是用于完成这个任务的一些常用工具:

img002 OllyDbg是一个可用于遍历本地可执行代码、设置断点,并在磁盘上或在运行时对可执行文件应用补丁的Windows调试器。

img002 IDA Pro是一个反汇编程序,它可以将大量平台上的本地可执行代码反汇编成人类可读的汇编代码。

虽然我们不会在本书中详细介绍有关逆向工程的信息,但是,如果你希望详细了解逆向工程本地代码组件及相关主题,下面是一些有用的资源:

img002 Reversing: Secrets of Reverse Engineering , Eldad Eilam 著;

img002 Hacker Disassembling Uncovered , Kris Kaspersky著;

img002 The Art of Software Security Assessment , Mark Dowd、John McDonald 和 Justin Schuh 著;

img002 Fuzzing for Software Security Testing and Quality Assurance (Artech House Information Security and Privacy) , Ari Takanen、Jared DeMott和Charlie Miller著;

img002 The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler , Chris Eagle著 [1]

img002 www.acm.uiuc.edu/sigmil/RevEng ;

img002 www.uninformed.org/?v=1&a=7。