绕过 Web 浏览器控件中的 XSS 筛选器



我正在做一个宠物项目,需要克服应用程序中的一个主要障碍。我查看了无数的论坛和文章,只找到了我正在寻找的零碎内容,所以我希望更直接的方法对我有所帮助。

场景如下:1. 该网站实际上是一个游戏,它在一个具有多个 IFRAME 的页面上使用 Javascript/JSON 和 DHTML - 其中两个位于外部页面和单独域的更深处。

  1. 我正在尝试做的事情没有安全问题。所有编程和访问仅限于简化和自动化正常访问功能。所有身份验证和私人信息都是在任何访问之前完成的,并且只会使用会话信息,并且仅用于促进用户知道会发生的游戏操作。

  2. 这个想法是使用 Web 浏览器控件访问游戏并提供普通访问,而托管浏览器的应用程序获取游戏会话信息并对游戏服务器进行单独的自动调用。这已经通过Firefox使用Greasemonkey脚本完成了,并且运行良好 - 除了Firefox有一个可怕的内存泄漏,最终导致整个操作崩溃。

我遇到的问题是显而易见的。我正在尝试访问技术上位于不同域上的 iframe,而 Web 浏览器 DOM 模型不允许我进入。我已经看过足够多的文章,知道 XSS 过滤器块有几种解决方法,但它们非常模糊,并且因场景而异。

因此,我将准确概述我需要什么,希望我能获得友好的解决方案......

  1. 我需要获取不同域的嵌套 IFRAME 的 DOM。如果需要,我可以只使用源代码,但 DOM 和 JS 变量将是最理想的。我的策略是使用会话信息,并在游戏中与网络浏览器并行进行 HttpWebRequest 调用。这样我就可以在玩游戏的同时自动执行某些功能。这是可以做到的 - 如果我能获取会话信息并以相同的方式传递它。这一切都将在具有用户权限和知识的同一客户端上完成,因此没有安全问题。

  2. 如果我能将信息传回该 IFRAME,我真的很喜欢它。该项目试图做的主要事情之一是进行一些视觉更改以简化界面的外观和感觉。它都是 HTML 格式,所以更改只是添加一些 JS 代码的内联样式......

那么无论如何,什么想法和建议最有效?在这一点上,我对所有场景都持开放态度,但理想情况下,尽可能简单的东西来获得我需要的东西。这已经是一个庞大的项目:)。

提前感谢!

如果您控制所有有问题的网站,则可以使用postMessage进行通信。此外,还有easyXDM,它提供了一组也可以在旧浏览器上运行的传输(并自动选择最佳浏览器)。

https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

可以绕过XSS检查并通过IOleContainer访问iframes,如此处所述。该示例是C++的,但使用 COM 互操作从 C# 执行相同的操作应该不是问题。

最新更新