基于QtWebKit-电脑维修助理DOMXSS检测技术

核心提示:Bowen作者:仓{ TSRC } 1、前言1.1、什么是DOM XSS跨站脚本是基于基于DOM文档对象模型DOM文档对象模型。
1。前言
1.1 DOM XSS是什么


基于DOM的XSS是一种基于文档对象模型的XSS漏洞(文档对象模型DOM)。在一个简单的方法,DOM XSS是一个漏洞,出现在Javascript代码。不同于普通的XSS,在浏览器解析DOM XSS页面DOM树的变化,以及恶意代码不在网页源代码显示。这使得我们无法通过特征匹配检测DOM XSS,其中自动漏洞检测带来了挑战。本文将介绍一种基于QtWebKit和本系统的结果和一些缺点DOM XSS检测系统。

2、QtWebKit
2.1 QtWebKit是什么


首先我们知道WebKit,WebKit是一个开源的浏览器引擎。它包含WebCore排版引擎和jscore发动机,分别从KHTML和KJS KDE,有源码结构清晰的特点,绘制速度快等。苹果的Safari和Chrome眉目传情基于WebKit引擎的浏览器。

QtWebKit是移植Qt WebKit开源项目。它具有很强的可移植性,完全支持HTML、CSS和js,支持HTML5,支持Flash等插件,具有封装性好、简单易用的特点,Qt内核为我们提供了网络和gui等核心功能。Qt的API使我们能够开发应用层程序方便Qt,模拟js执行和DOM树结构的相互作用。简而言之,它是方便开发QtWebKit个性化的浏览器。

例如,左边是WebKit引擎,右边是各种应用程序或基于WebKit的包。


和2.2的操作编制和实现


QtWebKit支持跨平台的应用程序。首先我们需要安装QT环境,运用qt-everywhere-opensource-src-4.8.2版本,安装QT环境取决于许多基地,需要耐心的安装,网上有很多资料,这里不再对安装成功后可以运行使用qmake - H的观点帮助。

接下来,我们需要编译和安装WebKit引擎,我用的版本是webkit-r90370.when我编译,我遇到的许多变量,如未申报,未引用的编译错误,但是只要有源码,没有恐惧。在检查源代码,他们都已经解决了。当你看到下面的画面,恭喜你,整个QtWebKit环境已经编译成功。


在编译成功后我们可以尝试调用QtWebKit API应用程序,开发一个基于应用程序的GUI界面和实现(如一个简单的浏览器)是不难的,在这里,笔者想探讨如何使我们的应用程序在后台运行,因为QT的GUI界面不仅影响该系统的速度,而且是我们的检测功能的意义,有必要考虑剥离。作者采用从源代码的方式,屏蔽相关GUI调用,然后重新编译引擎。目前,我们的发动机在没有界面的情况下能够顺利地在后台运行。

3、基于QtWebKit DOM XSS检测系统
3.1检测原理


随着QtWebKit JS引擎和DOM树的遍历API,它已成为检测DOM XSS很简单。我们可以尝试插入在CGI的标签或属性看他将解析QtWebKit,如果它可以被视为一个漏洞。

举个简单的例子,下面的图显示了domxss_img.html DOM XSS漏洞。我们试图插入恶意标签到domtest.html。如果该系统成功地解决了巫妖王的标签,这表明DOM XSS漏洞检测,报警(888)是我们的一个测试案例。除了插入标签,我们也可以尝试插入特殊的标签如IMG,iframe属性,等等。




这是一个最简单的例子,DOM XSS。实际上,一些DOM XSS需要一些JS的单击动作触发。在这方面,我们可以遍历所有点击行为遍历DOM节点的部分代码如下所示。一些DOM XSS需要触发特定的逻辑,我们可以遍历所有的js的路径钩QtWebKit JS引擎。



3.2系统的影响


自2012年11月中旬推出的系统,该系统具有扫描所有的腾讯的域名,数以百万计的URL。共有成千上万的URL被发现有DOM XSS漏洞。以下是漏洞单趋势图由系统发现(一workbill可能包含一些URL)


3.3不足


目前,我们的系统也有一些漏扫和遗漏,漏报主要引起QtWebKit本身的编码问题,如DOM XSS TSRC报道一些漏洞,可以只触发IE,不能触发下铬(铬使用WebKit引擎),暂时无法检测系统。

另一个问题是,superhei可以执行过滤功能导致丹尼尔TSRC eval XSS松懈的报告,一个简单的这个漏洞触发场景模拟的作者,如下图所示,这不是通过插入新的标签或属性来触发漏洞,暂时找不到有效的系统。

由于QtWebKit是开源的,所有上述的两个问题是可以解决的在线。特别是,eval的问题可通过钩JS特异功能解决。

4。总结


事实上,我们可以做基于QtWebKit很多其他事情,如开发爬虫爬行Web2.0的链接,DOM跳检测,并引入任何JS文件检测。稍后我们将介绍这些系统。
有很多的方法来检测DOM XSS,比如白盒代码审计,浏览器插件等检测,作者在这里只是看到一个快速有效的解决方案的一种尝试。欢迎批评指正。

谢谢哥哥,black Wrangler产业安全Daniel TSRC反馈漏洞,每个漏洞促使腾讯安全漏洞检测的队伍继续前进,我们的漏洞检测系统的持续改进。