沈陽電腦維修網,沈陽上門維修電腦服務
當前位置: 主頁 > 沈陽網站推廣>基于QtWebKit的DOM XSS檢測技術-電腦維修助手 >

基于QtWebKit的DOM XSS檢測技術-電腦維修助手

時間:2017-5-23來源:www.jdflqf.live 作者: 沈陽電腦維修網點擊:
沈陽電腦維修,上門維修電腦
  沈陽電腦維修上門服務13889116605: 博文作者:Bingo[TSRC]1、前言1.1什么是DOMXSSDOM-basedXSS是一種基于文檔對象模型(DocumentObjectModel,DOM)的XSS漏...博文作者:Bingo[TSRC] 1、前言 1.1什么是DOMXSS    DOM-basedXSS是一種基于文檔對象模型(DocumentObjectModel,DOM)的XSS漏洞。簡單理解,DOMXSS就是出現在javascript代碼中的漏洞。與普通XSS不同的是,DOMXSS是在瀏覽器的解析中改變頁面DOM樹,且惡意代碼并不在返回頁面源碼中回顯,這使我們無法通過特征匹配來檢測DOMXSS,給自動化漏洞檢測帶來了挑戰。本文將介紹一種基于QtWebKit的DOMXSS檢測系統以及本系統目前取得的效果和一些不足之處。   2、QtWebKit 2.1什么是QtWebKit    首先了解下WebKit,WebKit是一個開源的瀏覽器引擎,WebKit所包含的WebCore排版引擎和JSCore引擎分別來自于KDE的KHTML和KJS,擁有源碼結構清晰、渲染速度快等特點。蘋果的Safari及Google的Chrome都是基于Webkit引擎開發的瀏覽器。    QtWebkit是將Webkit移植到QT的一個開源項目,具有移植性強,全面支持HTML、CSS、JS,支持HTML5,支持Flash等各種擴展插件,封裝較好及簡單易用等特點。Qt內核為我們提供了Networking、GUI等核心功能模塊,QtAPI使我們可以很方便的在QT中開發應用層程序,模擬JS執行及與DOM樹交互的過程。簡單來說,使用QtWebKit可以很方便的開發出一款個性化定制的瀏覽器。    如圖,左邊是WebKit引擎,右邊是基于WebKit的各種應用或封裝。  2.2QtWebKit的編譯與運行    QtWebKit可以很好的支持跨平臺應用。首先我們需要安裝QT環境,筆者采用的版本是qt-everywhere-opensource-src-4.8.2,安裝QT環境依賴于很多基礎庫,需要耐心的依次安裝,網上有很多參考文檔,這里不再贅述,安裝成功后則可以運行qmake–h查看使用幫助。    接下來我們需要編譯安裝WebKit引擎,筆者采用的版本是WebKit-r90370。筆者在編譯時遇到不少變量未聲明,未定義的引用等編譯錯誤,不過只要有源碼,什么都不怕,耐心查看源碼后均已解決。當你看到下圖時,恭喜你,整個QtWebKit環境已經編譯成功了。    編譯成功后我們就可以嘗試調用QtWebKit的API編寫應用程序了,要想基于QtWebKit開發個帶GUI界面的應用程序(比如一款簡單的瀏覽器)并不難,這里筆者主要想探討下如何使我們的應用程序在后臺無界面運行。由于QT自帶的GUI界面既影響系統運行速度,又對我們的檢測功能毫無意義,所以必須考慮剝離。筆者采用的方法是從源碼出發,屏蔽相關的GUI調用,然后重新編譯引擎,目前我們的引擎已能較穩定的后臺無界面運行了。   3、基于QtWebKit的DOMXSS檢測系統 3.1檢測原理    有了QtWebKit的JS引擎及DOM樹交互遍歷API,檢測DOMXSS實際已變得非常簡單。我們可以嘗試在CGI中插入標簽或屬性,看看他會不會被QtWebKit解析出來,如果可以則認為有漏洞。    來看個簡單的例子,如下圖,domxss_img.html存在DOMXSS漏洞,我們嘗試在domtest.html中插入惡意標簽<wlk>,如果系統成功解析出WLK標簽,則說明檢測到DOMXSS漏洞,<wlk>alert(888)</wlk>是我們的一個測試用例。除了插入標簽,對于img,iframe等特殊標簽,我們也可嘗試插入屬性。    這里只是舉了一個最簡單的DOMXSS例子,實際上有些DOMXSS需要一些JS點擊動作才能觸發,對此我們可以遍歷執行所有的點擊動作再交互遍歷DOM節點,部分代碼如下圖所示。有些DOMXSS需要在特定的if邏輯里才能觸發,我們可以HookQtWebKit的JS引擎,遍歷所有JS路徑。   3.2系統效果    本系統自2012年11月中旬上線以來,掃描騰訊所有域名,上百萬個URL。共有效發現數千個URL存在DOMXSS漏洞。以下是系統發現的漏洞工單趨勢圖(一個工單可能包含若干個URL)   3.3不足之處    目前我們的系統還存在一些漏掃及漏報,漏報主要是QtWebKit自身的編碼問題導致,比如少部分TSRC上報的DOMXSS漏洞,僅在IE下能觸發,在Chrome下無法觸發(Chrome也是使用WebKit引擎),系統暫時無法檢測出來。     另一個問題是SuperHei大牛在TSRC上報的Eval等可執行函數過濾不嚴導致的XSS,筆者簡單模擬了這種漏洞觸發場景,如下圖,這種并非通過插入新標簽或屬性來觸發漏洞,系統暫時未能有效發現。    由于QtWebKit是開源的,以上兩個問題均可排期解決。特別說明下,Eval的問題可以通過HookJS的特定函數來解決。 4、總結    實際上,我們可以基于QtWebKit做很多其他事情,比如開發爬取Web2.0鏈接的爬蟲,DOMJUMP檢測,任意JS文件引入檢測,后續將對這些系統另文介紹。www.it165.net    DOMXSS的檢測方法還有很多,比如白盒代碼審計、瀏覽器插件檢測等,筆者這里只是對一個看起來快速有效的方案的嘗試,歡迎大家多多批評指正。    最后感謝黑哥、牧馬人等業界安全大牛在TSRC上反饋的漏洞,每一個漏洞都鞭策著騰訊安全漏洞檢測團隊不斷前進,不斷改進我們的漏洞檢測系統。
上一篇:某家居網站POST SQL注入漏洞及修復方案
查看[基于QtWebKit的DOM XSS檢測技術-電腦維修助手]所有評論
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼:
推薦內容
關于我們 服務價格 聯系我們 企業網站優化 沈陽網站建設 沈陽維修電腦
超联赛赛程时间表