自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于QtWebKit的DOM XSS檢測(cè)技術(shù)

安全
DOM-based XSS是一種基于文檔對(duì)象模型(Document Object Model,DOM)的XSS漏洞。簡(jiǎn)單理解,DOM XSS就是出現(xiàn)在JavaScript代碼中的漏洞。

1、前言

 什么是DOM XSS

DOM-based XSS是一種基于文檔對(duì)象模型(Document Object Model,DOM)的XSS漏洞。簡(jiǎn)單理解,DOM XSS就是出現(xiàn)在JavaScript代碼中的漏洞。與普通XSS不同的是,DOM XSS是在瀏覽器的解析中改變頁(yè)面DOM樹(shù),且惡意代碼并不在返回頁(yè)面源碼中回顯,這使我們無(wú)法通過(guò)特征匹配來(lái)檢測(cè)DOM XSS,給自動(dòng)化漏洞檢測(cè)帶來(lái)了挑戰(zhàn)。本文將介紹一種基于QtWebKit的DOM XSS檢測(cè)系統(tǒng)以及本系統(tǒng)目前取得的效果和一些不足之處。

2、QtWebKit

2.1 什么是QtWebKit

首先了解下WebKit,WebKit是一個(gè)開(kāi)源的瀏覽器引擎,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎分別來(lái)自于 KDE 的KHTML 和 KJS,擁有源碼結(jié)構(gòu)清晰、渲染速度快等特點(diǎn)。蘋果的Safari及Google的Chrome都是基于Webkit引擎開(kāi)發(fā)的瀏覽器。

QtWebkit是將Webkit移植到QT的一個(gè)開(kāi)源項(xiàng)目,具有移植性強(qiáng),全面支持HTML、CSS、JS,支持HTML5,支持Flash等各種擴(kuò)展插件,封裝較好及簡(jiǎn)單易用等特點(diǎn)。Qt內(nèi)核為我們提供了Networking、GUI等核心功能模塊,Qt API使我們可以很方便的在QT中開(kāi)發(fā)應(yīng)用層程序,模擬JS執(zhí)行及與DOM樹(shù)交互的過(guò)程。簡(jiǎn)單來(lái)說(shuō),使用QtWebKit可以很方便的開(kāi)發(fā)出一款個(gè)性化定制的瀏覽器。

如圖,左邊是WebKit引擎,右邊是基于WebKit的各種應(yīng)用或封裝。

2.2 QtWebKit的編譯與運(yùn)行

QtWebKit可以很好的支持跨平臺(tái)應(yīng)用。首先我們需要安裝QT環(huán)境,筆者采用的版本是qt-everywhere-opensource-src-4.8.2,安裝QT環(huán)境依賴于很多基礎(chǔ)庫(kù),需要耐心的依次安裝,網(wǎng)上有很多參考文檔,這里不再贅述,安裝成功后則可以運(yùn)行qmake –h查看使用幫助。

接下來(lái)我們需要編譯安裝WebKit引擎,筆者采用的版本是WebKit-r90370。筆者在編譯時(shí)遇到不少變量未聲明,未定義的引用等編譯錯(cuò)誤,不過(guò)只要有源碼,什么都不怕,耐心查看源碼后均已解決。當(dāng)你看到下圖時(shí),恭喜你,整個(gè)QtWebKit環(huán)境已經(jīng)編譯成功了。

編譯成功后我們就可以嘗試調(diào)用QtWebKit的API編寫應(yīng)用程序了,要想基于QtWebKit開(kāi)發(fā)個(gè)帶GUI界面的應(yīng)用程序(比如一款簡(jiǎn)單的瀏覽器)并不難,這里筆者主要想探討下如何使我們的應(yīng)用程序在后臺(tái)無(wú)界面運(yùn)行。由于QT自帶的GUI界面既影響系統(tǒng)運(yùn)行速度,又對(duì)我們的檢測(cè)功能毫無(wú)意義,所以必須考慮剝離。筆者采用的方法是從源碼出發(fā),屏蔽相關(guān)的GUI調(diào)用,然后重新編譯引擎,目前我們的引擎已能較穩(wěn)定的后臺(tái)無(wú)界面運(yùn)行了。

3、基于QtWebKit的DOM XSS檢測(cè)系統(tǒng)

3.1 檢測(cè)原理

有了QtWebKit的JS引擎及DOM樹(shù)交互遍歷API,檢測(cè)DOM XSS實(shí)際已變得非常簡(jiǎn)單。我們可以嘗試在CGI中插入標(biāo)簽或?qū)傩?,看看他?huì)不會(huì)被QtWebKit解析出來(lái),如果可以則認(rèn)為有漏洞。

來(lái)看個(gè)簡(jiǎn)單的例子,如下圖,domxss_img.html存在DOM XSS漏洞,我們嘗試在domtest.html中插入惡意標(biāo)簽<wlk>,如果系統(tǒng)成功解析出WLK標(biāo)簽,則說(shuō)明檢測(cè)到DOM XSS漏洞,<wlk>alert(888)</wlk>是我們的一個(gè)測(cè)試用例。除了插入標(biāo)簽,對(duì)于img,iframe等特殊標(biāo)簽,我們也可嘗試插入屬性。

這里只是舉了一個(gè)最簡(jiǎn)單的DOM XSS例子,實(shí)際上有些DOM XSS需要一些JS點(diǎn)擊動(dòng)作才能觸發(fā),對(duì)此我們可以遍歷執(zhí)行所有的點(diǎn)擊動(dòng)作再交互遍歷DOM節(jié)點(diǎn),部分代碼如下圖所示。有些DOM XSS需要在特定的if邏輯里才能觸發(fā),我們可以Hook QtWebKit的JS引擎,遍歷所有JS路徑。

3.2 系統(tǒng)效果

本系統(tǒng)自2012年11月中旬上線以來(lái),掃描騰訊所有域名,上百萬(wàn)個(gè)URL。共有效發(fā)現(xiàn)數(shù)千個(gè)URL存在DOM XSS漏洞。以下是系統(tǒng)發(fā)現(xiàn)的漏洞工單趨勢(shì)圖(一個(gè)工單可能包含若干個(gè)URL)

3.3 不足之處

目前我們的系統(tǒng)還存在一些漏掃及漏報(bào),漏報(bào)主要是QtWebKit自身的編碼問(wèn)題導(dǎo)致,比如少部分TSRC上報(bào)的DOM XSS漏洞,僅在IE下能觸發(fā),在Chrome下無(wú)法觸發(fā)(Chrome也是使用WebKit引擎),系統(tǒng)暫時(shí)無(wú)法檢測(cè)出來(lái)。

另一個(gè)問(wèn)題是SuperHei大牛在TSRC上報(bào)的Eval等可執(zhí)行函數(shù)過(guò)濾不嚴(yán)導(dǎo)致的XSS,筆者簡(jiǎn)單模擬了這種漏洞觸發(fā)場(chǎng)景,如下圖,這種并非通過(guò)插入新標(biāo)簽或?qū)傩詠?lái)觸發(fā)漏洞,系統(tǒng)暫時(shí)未能有效發(fā)現(xiàn)。

由于QtWebKit是開(kāi)源的,以上兩個(gè)問(wèn)題均可排期解決。特別說(shuō)明下,Eval的問(wèn)題可以通過(guò)Hook JS的特定函數(shù)來(lái)解決。

4、總結(jié)

實(shí)際上,我們可以基于QtWebKit做很多其他事情,比如開(kāi)發(fā)爬取Web2.0鏈接的爬蟲(chóng),DOM JUMP檢測(cè),任意JS文件引入檢測(cè),后續(xù)將對(duì)這些系統(tǒng)另文介紹。

DOM XSS的檢測(cè)方法還有很多,比如白盒代碼審計(jì)、瀏覽器插件檢測(cè)等,筆者這里只是對(duì)一個(gè)看起來(lái)快速有效的方案的嘗試,歡迎大家多多批評(píng)指正。

最后感謝黑哥、牧馬人等業(yè)界安全大牛在TSRC上反饋的漏洞,每一個(gè)漏洞都鞭策著騰訊安全漏洞檢測(cè)團(tuán)隊(duì)不斷前進(jìn),不斷改進(jìn)我們的漏洞檢測(cè)系統(tǒng)。

責(zé)任編輯:藍(lán)雨淚 來(lái)源: 博客
相關(guān)推薦

2013-12-02 13:55:23

任意跳轉(zhuǎn)漏洞漏洞檢測(cè)DOM跳轉(zhuǎn)漏洞

2016-03-31 15:25:09

2013-01-09 14:17:59

2017-08-03 11:00:20

2014-04-15 17:03:00

2013-06-05 14:07:45

XssScanerxss

2023-10-10 19:00:57

云網(wǎng)關(guān)報(bào)文檢測(cè)

2010-09-28 15:27:09

JavaScript

2024-03-14 14:16:13

2020-12-08 06:19:33

爬蟲(chóng)Dom樹(shù)組件

2018-11-13 08:00:14

蘇寧iOS開(kāi)發(fā)

2016-09-29 14:03:06

2013-04-07 10:11:27

2013-07-27 20:04:38

2017-08-11 17:55:48

前端JavaScript模板引擎

2013-05-22 18:06:41

2013-12-18 09:39:37

XSSWAF繞過(guò)

2012-03-14 11:38:16

ibmdw

2010-11-04 14:11:11

2014-07-02 10:24:25

XSSXSS漏洞XSS檢測(cè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)