• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:14:09
    文檔

    總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹

    總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹:前言隨著 Web2.0 的發(fā)展以及 Ajax 框架的普及,富客戶端 Web 應(yīng)用(Rich Internet Applications,RIA)日益增多,越來越多的邏輯已經(jīng)開始從服務(wù)器端轉(zhuǎn)移至客戶端,這些邏輯通常都是使用 JavaScript 語言所編寫。但遺憾的是,目前開發(fā)人員普遍不太關(guān)注 Ja
    推薦度:
    導(dǎo)讀總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹:前言隨著 Web2.0 的發(fā)展以及 Ajax 框架的普及,富客戶端 Web 應(yīng)用(Rich Internet Applications,RIA)日益增多,越來越多的邏輯已經(jīng)開始從服務(wù)器端轉(zhuǎn)移至客戶端,這些邏輯通常都是使用 JavaScript 語言所編寫。但遺憾的是,目前開發(fā)人員普遍不太關(guān)注 Ja

    前言

    隨著 Web2.0 的發(fā)展以及 Ajax 框架的普及,富客戶端 Web 應(yīng)用(Rich Internet Applications,RIA)日益增多,越來越多的邏輯已經(jīng)開始從服務(wù)器端轉(zhuǎn)移至客戶端,這些邏輯通常都是使用 JavaScript 語言所編寫。但遺憾的是,目前開發(fā)人員普遍不太關(guān)注 JavaScript 代碼的安全性。據(jù) IBM X-Force 2011 年中期趨勢報告揭示,世界五百強(qiáng)的網(wǎng)站及常見知名網(wǎng)站中有 40% 存在 JavaScript 安全漏洞。本文將結(jié)合代碼向讀者展示常見 JavaScript 安全漏洞,旨在幫助讀者能夠在日常編碼工作中規(guī)避這些安全漏洞。此外,客戶端 JavaScript 安全漏洞與服務(wù)器端安全漏洞原理略為不同,自動化檢測 JavsScript 安全漏洞目前存在較大的技術(shù)難題,本文將結(jié)合案例跟讀者分享如何利用 IBM Rational AppScan Standard Edition V8.0 新特性(JavaScript Security Analyzer,JSA)技術(shù)自動化檢測 JavaScript 安全漏洞。

    JavaScript 常見安全漏洞

    2010 年 12 月份,IBM 發(fā)布了關(guān)于 Web 應(yīng)用中客戶端 JavaScript 安全漏洞的白皮書,其中介紹了 IBM 安全研究機(jī)構(gòu)曾做過的 JavaScript 安全狀況調(diào)查。樣本數(shù)據(jù)包括了 675 家網(wǎng)站,其中有財富 500 強(qiáng)公司的網(wǎng)站和另外 175 家著名網(wǎng)站,包括 IT 公司、Web 應(yīng)用安全服務(wù)公司、社交網(wǎng)站等。為了不影響這些網(wǎng)站的正常運(yùn)行,研究人員使用了非侵入式爬蟲,僅掃描了無需登錄即可訪問的部分頁面,每個站點不超過 200 個頁面。這些頁面都被保存下來,研究人員采用 IBM 的 JavaScript 安全分析技術(shù)離線分析了這些頁面,集中分析了基于 DOM 的跨站點腳本編制及重定向兩種漏洞。

    測試結(jié)果令人驚嘆,這些知名網(wǎng)站中有 14% 存在嚴(yán)峻的 JavaScript 安全問題,黑客可以利用這些漏洞進(jìn)行植入流氓軟件,植入釣魚站點,以及劫持用戶會話等。更令人驚嘆不已的是,隨著 IBM 的 JavaScript 安全分析技術(shù)的成熟發(fā)展,2011 年中期 X-Force 報告顯示,IBM 重新測試了上述這些知名網(wǎng)站并發(fā)現(xiàn)了更多的安全漏洞,大約有 40% 的網(wǎng)站存在 JavaScript 安全漏洞。

    java企業(yè)級通用權(quán)限安全框架源碼 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

    下文本文將結(jié)合代碼向讀者展示常見這些 JavaScript 安全漏洞,以便讀者在實際編碼過程中注意到這些安全問題,及早規(guī)避這些風(fēng)險。

    基于 DOM 的跨站點腳本編制

    我們都聽說過 XSS(Cross Site Script,跨站點腳本編制,也稱為跨站腳本攻擊),指的是攻擊者向合法的 Web 頁面中插入惡意腳本代碼(通常是 HTML 代碼和 JavaScript 代碼)然后提交請求給服務(wù)器,隨即服務(wù)器響應(yīng)頁面即被植入了攻擊者的惡意腳本代碼,攻擊者可以利用這些惡意腳本代碼進(jìn)行會話劫持等攻擊??缯军c腳本編制通常分為反射型和持久型:當(dāng)請求數(shù)據(jù)在服務(wù)器響應(yīng)頁面中呈現(xiàn)為未編碼和未過濾時,即為反射型跨站點腳本編制;持久型指的是包含惡意代碼的請求數(shù)據(jù)被保存在 Web 應(yīng)用的服務(wù)器上,每次用戶訪問某個頁面的時候,惡意代碼都會被自動執(zhí)行,這種攻擊對于 Web2.0 類型的社交網(wǎng)站來說尤為常見,威脅也更大。應(yīng)對跨站點腳本編制的主要方法有兩點:一是不要信任用戶的任何輸入,盡量采用白名單技術(shù)來驗證輸入?yún)?shù);二是輸出的時候?qū)τ脩籼峁┑膬?nèi)容進(jìn)行轉(zhuǎn)義處理。

    但鮮為人知的是還有第三種跨站點腳本編制漏洞。2005 年 Amit Klein 發(fā)表了白皮書《基于 DOM 的跨站點腳本編制—第三類跨站點腳本編制形式》("DOM Based Cross Site Scripting or XSS of the Third Kind"),它揭示了基于 DOM 的跨站點腳本編制不需要依賴于服務(wù)器端響應(yīng)的內(nèi)容,如果某些 HTML 頁面使用了 document.location、document.URL 或者 document.referer 等 DOM 元素的屬性,攻擊者可以利用這些屬性植入惡意腳本實施基于 DOM 的跨站點腳本編制攻擊。

    下面我們將通過一個很簡單的 HTML 頁面來演示基于 DOM 的跨站點腳本編制原理。假設(shè)有這么一個靜態(tài) HTML 頁面(如清單 1 所示),用來展示歡迎用戶成功登錄的信息。

    清單 1. 存在 DOM based XSS 的 HTML 代碼

    <HTML>
    <TITLE>Welcome!</TITLE>
    Hi
    <SCRIPT>
     var pos=document.URL.indexOf("name=")+5;
     document.write(document.URL.substring(pos,document.URL.length));
    </SCRIPT>
    <BR>
    Welcome to our system
    …</HTML>

    按照該頁面 JavaScript 代碼邏輯,它會接受 URL 中傳入的 name 參數(shù)并展示歡迎信息,如清單 2 所示:

    清單 2. 正常情況下的訪問 URL

    http://www.vulnerable.site/welcome.html?name=Jeremy

    但如果惡意攻擊者輸入類似如下的腳本,見清單 3,該頁面則會執(zhí)行被注入的 JavaScript 腳本。

    清單 3. 訪問 URL 中注入腳本

    http://www.vulnerable.site/welcome.html?name=<script>alert(document.cookie)</script>

    很明顯,受害者的瀏覽器訪問以上 URL 的時候,服務(wù)器端會跟正常情況下一樣返回清單 1 中所示 HTML 頁面,然后瀏覽器會繼續(xù)將這個 HTML 解析成 DOM,DOM 中包含的 document 對象的 URL 屬性將包含清單 3 中注入的腳本內(nèi)容,當(dāng)瀏覽器解析到 JavaScript 的時候會執(zhí)行這段被注入的腳本,跨站點腳本編制攻擊即成功實現(xiàn)。

    值得關(guān)注的是,通過以上示例可以看出,惡意代碼不需要嵌入服務(wù)器的響應(yīng)中,基于 DOM 的跨站點腳本編制攻擊也能成功??赡苣承┳x者會認(rèn)為:目前主流瀏覽器會自動轉(zhuǎn)義 URL 中的 "<" 和 ">" 符號,轉(zhuǎn)義后的注入腳本就不會被執(zhí)行了,基于 DOM 的跨站點腳本編制也就不再有什么威脅了。這句話前半段是對的,但后半段就不準(zhǔn)確了。我們要意識到攻擊者可以很輕松地繞過瀏覽器對 URL 的轉(zhuǎn)義,譬如攻擊者可以利用錨點 "#" 來欺騙瀏覽器,如清單 4 所示。瀏覽器會認(rèn)為 "#" 后面的都是片段信息,將不會做任何處理。

    清單 4. 訪問 URL 中結(jié)合錨點注入腳本

    http://www.vulnerable.site/welcome.html#?name=<script>alert(document.cookie)</script>

    通過 URL 重定向釣魚

    網(wǎng)絡(luò)釣魚是一個通稱,代表試圖欺騙用戶交出私人信息,以便電子欺騙身份。通過 URL 重定向釣魚指的是 Web 頁面會采用 HTTP 參數(shù)來保存 URL 值,且 Web 頁面的腳本會將請求重定向到該保存的 URL 上,攻擊者可以將 HTTP 參數(shù)里的 URL 值改為指向惡意站點,從而順利啟用網(wǎng)絡(luò)釣魚欺騙當(dāng)前用戶并竊取用戶憑證。清單 5 給出了較為常見的含有通過 URL 重定向釣魚漏洞的代碼片段。

    清單 5. 執(zhí)行重定向的 JavaScript 代碼片段

    <SCRIPT>
    …
     var sData = document.location.search.substring(1);
     var sPos = sData.indexOf("url=") + 4;
     var ePos = sData.indexOf("&", sPos);
     var newURL;
     if (ePos< 0) {
     newURL = sData.substring(sPos);
     } else {
     newURL = sData.substring(sPos, ePos);
     }
     window.location.href = newURL;
    …
    </SCRIPT>

    可以看出,這些 JavaScript 腳本負(fù)責(zé)執(zhí)行重定向,新地址是從 document.location、document.URL 或者 document.referer 等 DOM 元素的屬性值中截取出來的,譬如用戶輸入清單 6 所示。

    清單 6. 執(zhí)行重定向的 URL

    http://www.vulnerable.site/redirect.html?url=http://www.phishing.site

    顯然用戶一旦執(zhí)行了清單 6 所示 URL,將被重定向到釣魚網(wǎng)站。這個漏洞的原理很簡單,比服務(wù)器端的重定向漏洞更好理解。但通過 URL 重定向釣魚的情況下,釣魚站點的網(wǎng)址并不會被服務(wù)端攔截和過濾,因此,這個漏洞往往比服務(wù)器端重定向漏洞更具有隱蔽性。

    客戶端 JavaScript Cookie 引用

    Cookie 通常由 Web 服務(wù)器創(chuàng)建并存儲在客戶端瀏覽器中,用來在客戶端保存用戶的身份標(biāo)識、Session 信息,甚至授權(quán)信息等。客戶端 JavaScript 代碼可以操作 Cookie 數(shù)據(jù)。如果在客戶端使用 JavaScript 創(chuàng)建或修改站點的 cookie,那么攻擊者就可以查看到這些代碼,通過閱讀代碼了解其邏輯,甚至根據(jù)自己所了解的知識將其用來修改 cookie。一旦 cookie 包含了很重要的信息,譬如包含了權(quán)限信息等,攻擊者很容易利用這些漏洞進(jìn)行特權(quán)升級等攻擊。

    JavaScript 劫持

    許多 Web 應(yīng)用程序都利用 JSON 作為 Ajax 的數(shù)據(jù)傳輸機(jī)制,這通常都容易受到 JavaScript 劫持攻擊,傳統(tǒng)的 Web 應(yīng)用程序反而不易受攻擊。JSON 實際上就是一段 JavaScript,通常是數(shù)組格式。攻擊者在其惡意站點的頁面中通過 <SCRIPT> 標(biāo)簽調(diào)用被攻擊站點的一個 JSON 動態(tài)數(shù)據(jù)接口,并通過 JavaScript Function Hook 等技術(shù)取得這些 JSON 數(shù)據(jù)。如果用戶登錄被攻擊網(wǎng)站后(假定其身份認(rèn)證信息是基于 Session Cookie 來保存的),又被攻擊者誘引訪問了惡意站點頁面,那么,由于 <SCRIPT src="> 這種標(biāo)簽的請求會帶上 Cookie 信息,惡意站點會發(fā)送 JSON 數(shù)據(jù)獲取請求至被攻擊站點,被攻擊站點服務(wù)器會認(rèn)為當(dāng)前請求是合法的,并返回給惡意站點當(dāng)前用戶的相關(guān) JSON 數(shù)據(jù),從而導(dǎo)致用戶數(shù)據(jù)泄密。整個過程相當(dāng)于一個站外類型的跨站點請求偽造 CSRF 攻擊。

    隨著 Ajax 的進(jìn)一步推廣,以及 HTML5 的逐步應(yīng)用,還有更多的客戶端安全漏洞出現(xiàn)。目前對于 JavaScript 的安全研究尚不多,新推出的 HTML5 客戶端存儲、跨域通信等新特型也都跟安全緊密相關(guān),有興趣的讀者可以作進(jìn)一步閱讀。鑒于筆者知識有限,JavaScript 相關(guān)安全漏洞暫且分享這么多,下面將談?wù)?JavaScript 安全漏洞的檢測技術(shù)。

    自動化檢測 JavaScript 安全漏洞

    正如我們所熟知,檢測代碼安全漏洞一般有白盒檢查和黑盒檢查。白盒檢查側(cè)重于對代碼的分析,可以通過手工代碼審查,或者自動代碼分析工具。黑盒檢查主要是模擬黑客攻擊的方式進(jìn)行滲透測試。通常而言,黑盒檢查的準(zhǔn)確度高一些,但代碼覆蓋面比較小,而白盒檢查的代碼覆蓋率較高,但誤報率比較高。兩種方式相結(jié)合能夠互相彌補(bǔ)不足,混合檢查方式將會是未來的趨勢。

    結(jié)合 JavaScript 代碼而言,出于跨瀏覽器兼容、更好的 Ajax 特性需求等原因,越來越多的 Web 應(yīng)用依賴于第三方的 JavaScript 代碼庫,譬如 Dojo、JQuery 等。這些代碼庫為了降低文件大小,往往都進(jìn)行了代碼壓縮,導(dǎo)致其可讀性極差,因此手工代碼審查幾乎不具備可行性。此外,頁面 JavaScript 調(diào)用入口很多,手工對其進(jìn)行滲透測試的工作量和難度都非常大。因此,我們需要推薦使用自動化測試工具來檢測 JavaScript 安全漏洞。

    Rational AppScan JSA 原理簡述

    JSA 是 Rational AppScan Standard V8.0 新推出的一項 AppScan 擴(kuò)展,用來進(jìn)行執(zhí)行靜態(tài) JavaScript 分析,以檢測常見客戶端安全漏洞。JSA 融合了 JavaScript 靜態(tài)污點分析技術(shù)和網(wǎng)站動態(tài)爬蟲技術(shù)。簡而言之,AppScan 會保存爬蟲所探索到的所有 URL 的完整的 HTTP 響應(yīng),然后 JSA 對這些響應(yīng)頁面逐個進(jìn)行 JavaScript 代碼分析。JSA 在分析每個頁面時應(yīng)用兩個階段:數(shù)據(jù)流分析和字符串分析。首先,JSA 查找從源(Source)到接收器(Sink)中未經(jīng)過清除工具(Sanitizer)的軌跡。如果可找到此軌跡(Trace),那么 JSA 將在第二步中使用字符串分析的變體——字符串前綴分析(SPA)進(jìn)行驗證。相比于單純的 JavaScript 代碼靜態(tài)分析技術(shù)而言,JSA 技術(shù)更為先進(jìn)和準(zhǔn)確,因為它是在完全解析好的 HTML 頁面及 DOM 環(huán)境中進(jìn)行安全漏洞分析。

    如今 Web2.0 網(wǎng)站及 Ajax 應(yīng)用中,HTML 頁面往往都需要瀏覽器基于服務(wù)器響應(yīng)里的 HTML 和 JavaScript 代碼進(jìn)行動態(tài)解析后才形成完整的 HTML 和 DOM,單純基于服務(wù)器響應(yīng)中的 JavaScript 代碼進(jìn)行靜態(tài)污點分析存在一個明顯缺陷 -- 其所測 JavaScript 代碼及執(zhí)行環(huán)境不一定完整,因此它無法保證測試的準(zhǔn)確度和全面性。JSA 正是克服了以上缺點,融合了白盒檢測和黑盒檢測兩種測試方法的優(yōu)點,并引入 IBM 的字符串分析技術(shù),所以 JSA 有著更好的準(zhǔn)確性和全面性。

    利用 AppScan 檢測 JavaScript 安全漏洞

    Altoro Mutual 是 IBM 所提供的 Web 安全漏洞演示網(wǎng)站,下文筆者將向讀者展示如何利用 AppScan JSA 來檢測該網(wǎng)站所存在的 JavaScript 安全漏洞。

    啟動 AppScan,點擊菜單"掃描– 掃描配置"打開掃描配置對話框,設(shè)置起始 URL 為"http://demo.testfire.net"。

    圖 1. 設(shè)置起始 URL

    2015082115424319.jpg

    在掃描配置對話框左側(cè),點擊"登錄管理",然后點擊右側(cè)的"記錄 ..."按鈕錄制登錄過程,確保會話中檢測處于活動狀態(tài)。

    圖 2. 設(shè)置登錄方法

    2015082115424320.jpg

    在掃描配置對話框左側(cè),點擊"測試策略",檢查測試策略設(shè)置。默認(rèn)測試策略應(yīng)該是"缺省",其已經(jīng)包含了常見 JavaScript 測試,可以點擊"已啟用 / 已禁止"查看當(dāng)前默認(rèn)啟用的測試策略。

    圖 3. 檢查測試策略


    2015082115424321.jpg

    關(guān)閉掃描配置對話框,點擊菜單"掃描 -- 僅探索"或單擊快捷按鈕(如圖 4 所示)啟動探索。本文僅示例如何檢測 JavaScript 安全漏洞,所以選擇"僅探索"+ 客戶端 JavaScript 分析的測試方式。

    圖 4. 啟動探索


    2015082115424322.jpg

    點擊菜單"工具– 擴(kuò)展名– JavaScript Security Analyzer"或者快捷按鈕(如圖 5 所示)打開"分析 JavaScript"。在彈出的 JavaScript Security Analyzer 對話框中,單擊"立即分析"。

    圖 5. 分析 JavaScript


    2015082115424323.jpg

    JavaScript Security Analyzer 掃描完成后,即在結(jié)果列表中列出所發(fā)現(xiàn)的客戶端 JavaScript 安全漏洞。如下圖所示,Altoro Mutual 站點存在"基于 DOM 的跨站點腳本編制"及"開放式重定向"漏洞,下文將展示這些漏洞的詳細(xì)信息。

    圖 6. 查看掃描結(jié)果


    <img src="attachment/stati</td> </tr> <tr> <td class=" text-danger"="">jquery實現(xiàn)疊層3D文字特效代碼分享

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹

    總結(jié)JavaScript中常見的漏洞及自動化檢測技術(shù)的介紹:前言隨著 Web2.0 的發(fā)展以及 Ajax 框架的普及,富客戶端 Web 應(yīng)用(Rich Internet Applications,RIA)日益增多,越來越多的邏輯已經(jīng)開始從服務(wù)器端轉(zhuǎn)移至客戶端,這些邏輯通常都是使用 JavaScript 語言所編寫。但遺憾的是,目前開發(fā)人員普遍不太關(guān)注 Ja
    推薦度:
    標(biāo)簽: 自動 js 常見
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久99精品国产麻豆婷婷| 国产在线精品一区二区不卡麻豆| 亚洲国产精品国自产电影| 亚洲七七久久精品中文国产| 国产精品黄页免费高清在线观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品456播放| 国模和精品嫩模私拍视频| 狠狠色丁香婷婷综合精品视频| 亚洲中文字幕久久精品无码喷水| 国产精品亚洲玖玖玖在线观看| 国产人成精品午夜在线观看| 国产精品午睡沙发系列| 亚洲韩国精品无码一区二区三区| 欧美精品VIDEOSEX极品| 国产精品1024在线永久免费| 久久国产精品国产自线拍免费| 国产乱码精品一品二品| 免费欧美精品a在线| 亚洲国产精品人人做人人爱| 国产精品免费久久久久影院| 四虎国产精品永久地址99| 久久国产精品久久| 国产在线精品一区二区不卡| 国产午夜精品一区二区三区| 午夜DY888国产精品影院| 亚洲国产婷婷综合在线精品| 久久狠狠一本精品综合网| 国产精品亚洲二区在线观看 | 伊在人亚洲香蕉精品区麻豆| 久久久久人妻一区精品果冻| 国产精品自产拍在线观看花钱看| 99精品人妻少妇一区二区| 91精品国产91久久久久久| 久久精品国产亚洲麻豆| 国产欧美国产精品第一区| 热re99久久精品国产99热| 91精品国产成人网在线观看| 国产精品VIDEOSSEX久久发布| 国内精品99亚洲免费高清| 久久精品国产一区二区 |