如何单步执行恶意 JavaScript?

信息安全 javascript
2021-08-26 14:43:01

有一种 Facebook 病毒正在流行:20 年后你的脸(安全链接,但不要按照说明进行操作)。

它清楚地从一个 url (例如changeups.info/age/u.php?0.5069423061795533) 中获取一些 Javascript 并在您的页面上运行它,该页面发布在您所有朋友的墙上。问题是我无法在没有登录 Facebook 的情况下访问脚本(并调查它在做什么)(因为它是一个 Facebook 页面,使用 API,如果你转到 url,它只会要求你登录),我显然不想这样做。

有没有办法安全地单步执行 Javascript,以便我可以下载脚本并避免它的恶意影响?

4个回答

不要单步执行,而是使用交互式代理(我偏爱 Fiddler,还有很多其他的......)。
下载 javascript 后,它将首先通过您的代理工具 - 您可以抓取它,将其保存,然后阻止它进入您的浏览器。

由于您知道它是恶意的,因此您最好查看源而不是执行它,尤其是在您的帐户上下文中。

如果这还不够好,并且您执行它,请创建一个新帐户并使用该帐户从一次性 VM 登录。
没有理由尝试清理可能被混淆和规避的恶意软件......只需将其隔离。

下面是关于蠕虫的源代码。我得到这个是因为我的一个朋友得到了 pwn3d,他在我的墙上贴了一个链接。我退出了 facebook,然后点击了链接。我安装了 Tamperdata 和 Firebug,但我不需要它们。它试图让您将 JavaScript 包含复制粘贴到上面的源代码中。查看页面的源代码足以了解其技巧。

您的问题的更一般的答案是使用沙箱。如果它的 javascript 内存损坏漏洞利用,那么您应该使用 VM。在这种情况下,我知道它的恶意软件驻留在登录的 fb 用户中。如果我想更多地了解它是如何工作的,那么我会注册一个 FB 帐户来测试它。

警告:请注意,以下内容仅适用于虚拟机。显然,调试恶意软件不应该在生产系统上进行;)

您可以使用Firebug逐步完成指令,这是一个带有许多调试功能的 Firefox 插件,在 JavaScript 执行后访问 DOM 等等。它被广泛使用并且有据可查。

其次,我有一个关于如何提高恶意、混淆的 JavaScript 可读性的提示:将代码声明为函数并使用 toString 方法:

evil_function = (function() { yourcopypasta_here } alert(evil_function.toString(2));

这将提供更漂亮的输出,并带有一些有用的空格:) 2toString 的参数未记录,可能仅适用于 Firefox。

您可以使用http://wepavet.iseclab.org/在线分析恶意软件。如果您愿意自己做,可以使用Malzilla类似的工具是McAfee 的FileInsight