成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于QtWebKit的DOM XSS檢測技術

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

1、前言

 什么是DOM XSS

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

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等核心功能模塊,Qt API使我們可以很方便的在QT中開發應用層程序,模擬JS執行及與DOM樹交互的過程。簡單來說,使用QtWebKit可以很方便的開發出一款個性化定制的瀏覽器。

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

2.2 QtWebKit的編譯與運行

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的DOM XSS檢測系統

3.1 檢測原理

有了QtWebKit的JS引擎及DOM樹交互遍歷API,檢測DOM XSS實際已變得非常簡單。我們可以嘗試在CGI中插入標簽或屬性,看看他會不會被QtWebKit解析出來,如果可以則認為有漏洞。

來看個簡單的例子,如下圖,domxss_img.html存在DOM XSS漏洞,我們嘗試在domtest.html中插入惡意標簽<wlk>,如果系統成功解析出WLK標簽,則說明檢測到DOM XSS漏洞,<wlk>alert(888)</wlk>是我們的一個測試用例。除了插入標簽,對于img,iframe等特殊標簽,我們也可嘗試插入屬性。

這里只是舉了一個最簡單的DOM XSS例子,實際上有些DOM XSS需要一些JS點擊動作才能觸發,對此我們可以遍歷執行所有的點擊動作再交互遍歷DOM節點,部分代碼如下圖所示。有些DOM XSS需要在特定的if邏輯里才能觸發,我們可以Hook QtWebKit的JS引擎,遍歷所有JS路徑。

3.2 系統效果

本系統自2012年11月中旬上線以來,掃描騰訊所有域名,上百萬個URL。共有效發現數千個URL存在DOM XSS漏洞。以下是系統發現的漏洞工單趨勢圖(一個工單可能包含若干個URL)

3.3 不足之處

目前我們的系統還存在一些漏掃及漏報,漏報主要是QtWebKit自身的編碼問題導致,比如少部分TSRC上報的DOM XSS漏洞,僅在IE下能觸發,在Chrome下無法觸發(Chrome也是使用WebKit引擎),系統暫時無法檢測出來。

另一個問題是SuperHei大牛在TSRC上報的Eval等可執行函數過濾不嚴導致的XSS,筆者簡單模擬了這種漏洞觸發場景,如下圖,這種并非通過插入新標簽或屬性來觸發漏洞,系統暫時未能有效發現。

由于QtWebKit是開源的,以上兩個問題均可排期解決。特別說明下,Eval的問題可以通過Hook JS的特定函數來解決。

4、總結

實際上,我們可以基于QtWebKit做很多其他事情,比如開發爬取Web2.0鏈接的爬蟲,DOM JUMP檢測,任意JS文件引入檢測,后續將對這些系統另文介紹。

DOM XSS的檢測方法還有很多,比如白盒代碼審計、瀏覽器插件檢測等,筆者這里只是對一個看起來快速有效的方案的嘗試,歡迎大家多多批評指正。

最后感謝黑哥、牧馬人等業界安全大牛在TSRC上反饋的漏洞,每一個漏洞都鞭策著騰訊安全漏洞檢測團隊不斷前進,不斷改進我們的漏洞檢測系統。

責任編輯:藍雨淚 來源: 博客
相關推薦

2013-12-02 13:55:23

任意跳轉漏洞漏洞檢測DOM跳轉漏洞

2016-03-31 15:25:09

2013-01-09 14:17:59

2014-04-15 17:03:00

2017-08-03 11:00:20

2013-06-05 14:07:45

XssScanerxss

2023-10-10 19:00:57

云網關報文檢測

2010-09-28 15:27:09

JavaScript

2024-03-14 14:16:13

2020-12-08 06:19:33

爬蟲Dom樹組件

2018-11-13 08:00:14

蘇寧iOS開發

2016-09-29 14:03:06

2013-04-07 10:11:27

2013-12-18 09:39:37

XSSWAF繞過

2013-05-22 18:06:41

2013-07-27 20:04:38

2017-08-11 17:55:48

前端JavaScript模板引擎

2012-03-14 11:38:16

ibmdw

2010-11-04 14:11:11

2010-09-28 08:54:49

JavascriptDOM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 资源首页二三区 | 麻豆精品久久久 | 伊人中文字幕 | 久久综合久久自在自线精品自 | 九九热热九九 | 国产乱码精品一区二区三区中文 | 国产精品免费小视频 | 国产伦一区二区三区视频 | 国产特级毛片aaaaaa喷潮 | 狠狠干影院 | 中文字幕不卡在线观看 | 欧美在线一区二区三区 | 日韩字幕| 黄网站涩免费蜜桃网站 | 国产精品久久久久久久久久 | 欧美成视频 | 精品一区二区电影 | 欧美在线一区二区三区 | 亚洲精品播放 | av毛片在线播放 | 99久久精品免费看国产小宝寻花 | 日韩欧美手机在线 | 国产区精品在线观看 | 草久视频 | 免费在线观看成人 | 91免费在线看 | 91精品久久久久久久久久入口 | 日韩午夜影院 | 国产一级片在线观看视频 | 精品在线观看入口 | 欧美午夜精品 | 草草视频在线播放 | 色黄网站 | 成人亚洲精品久久久久软件 | 国产精品中文字幕在线播放 | 欧美久久一级特黄毛片 | 欧美精品在线一区二区三区 | 亚洲一区| 夜操 | 在线观看中文字幕dvd播放 | 久久日本 |