国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript 常見安全漏洞和自動化檢測技術

開發 開發工具 自動化
本文介紹了 JavaScript 常見安全漏洞,分析了手工檢測 JavaScript 代碼存在較大的技術難度。本文跟讀者分享了 JSA 的基本原理和技術優勢,并結合案例向讀者演示了如何使用 IBM Rational AppScan JSA 測試客戶端 JavaScript 安全。

[[181118]]

前言

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

JavaScript 常見安全漏洞

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

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

java企業級通用權限安全框架源碼 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

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

基于 DOM 的跨站點腳本編制

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

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

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

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

  1. <HTML> 
  2. <TITLE>Welcome!</TITLE> 
  3. Hi 
  4. <SCRIPT> 
  5.  var pos=document.URL.indexOf("name=")+5; 
  6.  document.write(document.URL.substring(pos,document.URL.length)); 
  7. </SCRIPT> 
  8. <BR> 
  9. Welcome to our system 
  10. … 

 

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

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

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

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

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

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

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

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

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

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

通過 URL 重定向釣魚

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

清單 5. 執行重定向的 JavaScript 代碼片段

  1. <SCRIPT> 
  2. … 
  3.  var sData = document.location.search.substring(1); 
  4.  var sPos = sData.indexOf("url=") + 4; 
  5.  var ePos = sData.indexOf("&", sPos); 
  6.  var newURL; 
  7.  if (ePos< 0) { 
  8.  newURL = sData.substring(sPos); 
  9.  } else { 
  10.  newURL = sData.substring(sPos, ePos); 
  11.  } 
  12.  window.location.href = newURL
  13. … 

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

清單 6. 執行重定向的 URL

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

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

客戶端 JavaScript Cookie 引用

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

JavaScript 劫持

 

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

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

自動化檢測 JavaScript 安全漏洞

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

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

Rational AppScan JSA 原理簡述

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

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

利用 AppScan 檢測 JavaScript 安全漏洞

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

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

1. 設置起始 URL

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

2. 設置登錄方法

在掃描配置對話框左側,點擊"測試策略",檢查測試策略設置。默認測試策略應該是"缺省",其已經包含了常見 JavaScript 測試,可以點擊"已啟用 / 已禁止"查看當前默認啟用的測試策略。

3. 檢查測試策略

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

4. 啟動探索

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

5. 分析 JavaScript

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

6. 查看掃描結果

展開結果列表中的"基于 DOM 的跨站點腳本編制",單擊第一個"JavaScript"問題,在下方的問題信息中將會展示其詳細信息。我們可以看出,AppScan 保存了對 JavaScript 問題代碼的分析結果,并用黃色標識定位了源(Source)和接收器(Sink),利于開發人員快速修復該漏洞。

7. 基于 DOM 的跨站點腳本編制問題信息

同樣,展開并查看"開放式重定向"問題,在問題信息欄中展示了該漏洞的代碼分析結果。

8. 開放式重定向問題信息

注意:

本文為了快速展示如何檢測 JavaScript 安全漏洞,所以選擇"僅探索"+ 客戶端 JavaScript 分析的測試方式。實際工作中,建議您只需要跟通常一樣進行掃描(即手工探索結合自動探索站點,然后執行測試),AppScan 默認會在測試過程中自動執行 JavaScript Security Analyzer。

Rational AppScan Standard 能檢測已知常見 JavaScript 安全漏洞,但 Altoro Mutual 僅展示了基于 DOM 的跨站腳本編制和重定向漏洞,故本案例的結果列表中僅包含上述兩項安全漏洞。

結論

java企業級通用權限安全框架源碼 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

【本文是51CTO專欄作者elknot的原創文章,轉載請通過51CTO獲取授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2012-03-20 16:31:13

2012-09-03 14:22:02

2015-03-19 09:36:39

2015-07-09 09:35:37

2011-09-28 09:31:18

2021-05-10 16:03:27

人工智能自動化技術

2009-02-03 17:26:03

2019-03-26 15:57:17

智匯華云安全漏洞

2009-01-08 19:06:00

服務器安全Web服務器

2021-09-08 07:32:14

安全漏洞Dependency 代碼依賴包

2010-07-26 15:37:12

telnet安全漏洞

2014-09-25 13:14:53

2016-09-27 23:31:23

2010-07-30 16:02:56

2014-06-03 09:23:41

2020-12-18 09:40:30

應用程序安全代碼

2014-06-03 11:36:18

2009-02-17 14:07:21

2010-05-06 10:08:21

2011-03-28 10:55:22

點贊
收藏

51CTO技術棧公眾號

男人天堂久久久| 亚洲乱码精品一二三四区日韩在线| 欧美日韩一区在线播放 | 日韩欧美亚洲国产另类| 成人激情久久| 久久精精品视频| 亚洲免费资源在线播放| 超碰在线中文字幕| 久久中文久久字幕| 日韩亚洲第一页| 日韩在线电影| 精品国产一区二区三区久久狼黑人 | 瑜伽美女视频| 91福利视频网站| 欧美1级2级| 中文字幕久热精品视频在线| 2019国产精品| 天堂va在线高清一区| 国产一级特黄a大片免费| 欧美日韩999| 91视视频在线观看入口直接观看www | 亚洲一区二区影院| 999久久久精品一区二区| 成年人在线观看视频免费| 国内精品400部情侣激情| 高清视频一区二区| 午夜av成人| 一区二区三区四区免费视频| 制服丝袜中文字幕亚洲| 日韩精品水蜜桃| 亚洲人性生活视频| 91av中文字幕| 国产精品一二三四| 99在线播放| 中国女人做爰视频| 91精品国产一区二区三区蜜臀| 成人av毛片| 蜜桃av色综合| 亚洲少妇激情视频| 国产精品一二三| 亚洲四虎影院| 少妇无码av无码专区在线观看| 亚洲欧美另类在线观看| 国产精品影音先锋| 成人福利电影| 亚洲最大激情中文字幕| 欧美一区二区三区日韩| 国产91露脸合集magnet| gogo大尺度成人免费视频| 成人黄网大全在线观看| 992tv在线成人免费观看| 亚洲三级在线观看| 欧美残忍xxxx极端| 嫩草影院发布页| 国产玉足脚交久久欧美| 成人免费网站在线看| 日韩一区二区三区xxxx| 亚洲综合一区在线| 国产精品地址| 日本超碰一区二区| 性欧美孕妇孕交| 亚洲综合首页| 九九精品在线视频| 有码一区二区三区| 欧美一区久久久| 人成免费电影一二三区在线观看| 国产日韩三区| 国产一区二区三区三区在线观看| 久久久久免费观看| caoporn成人| 在线观看免费网站黄| 黄色一级片播放| 中文字幕乱码免费| 久久久久久久香蕉| 亚洲午夜精品福利| 2021国产精品视频| 欧美日韩国产色| 99国产精品久久久| 国产伦理一区| 成人性生交大片免费看中文视频| 国产中文字幕在线| 亚洲一区三区视频在线观看| 欧美成人精品在线| 一区二区欧美在线| 欧美一区二区成人| 亚洲成人自拍网| 国产精品天干天干在观线| 久久精品国产精品亚洲精品| 免费看av成人| 国产一区二区三区免费观看在线 | 日本高清久久一区二区三区| 欧美国产日本高清在线| 日韩欧美国产午夜精品| 黑人巨大精品欧美一区| 久久精品91| 国产精品伦理久久久久久| 成人一区不卡| 天堂俺去俺来也www久久婷婷| 亚洲优女在线| 26uuu亚洲电影在线观看| 欧美xxx网站| 色开心亚洲综合| 天堂在线观看一卡二卡三卡四卡| 中文字幕无码精品亚洲资源网久久| 国产欧美亚洲日本| 日韩av电影中文字幕| 亚洲欧洲精品一区二区三区波多野1战4| 日本www高清视频| 一本免费视频| 3p视频在线观看| 国产色在线观看| 毛片在线网站| 欧美日韩一卡| 91精品国产91久久综合| 九九视频精品全部免费播放| 精品成人乱色一区二区| 欧美日韩国内| 亚洲欧美成人| 美国三级日本三级久久99 | 欧美极品少妇xxxxⅹ裸体艺术| 欧美丰满少妇xxxx| 日韩中文字幕网址| 2019中文字幕免费视频| 欧美在线观看视频| 国产精品入口福利| 国产成人高清激情视频在线观看| 蜜桃成人免费视频| 欧美日韩一级在线 | 久久久久国产免费免费| 欧美精品色一区二区三区| 欧美激情久久久久久| 大波视频国产精品久久| 99精品人妻少妇一区二区| igao视频网在线视频| 桃花岛tv亚洲品质| 日本最新不卡在线| 欧美日韩免费一区二区三区视频| 欧美亚洲黄色| 日韩在线黄色| 模特精品在线| 亚洲成av人片一区二区梦乃| 97视频com| 国产精品区在线| 国产美女亚洲精品7777| 国产精品嫩草影院在线看| 中文字幕在线免费不卡| 亚洲视频电影图片偷拍一区| 91精品国产高清| 日韩欧美一级在线| 成人看av片| 欧美国产激情| 午夜精品一区二区三区免费视频 | 在线不卡中文字幕| 99热99热| 激情在线视频播放| 久久综合九色综合97婷婷| 国产日韩欧美综合| 调教在线观看| 日本精品在线播放| 国产婷婷一区二区| 日本伊人精品一区二区三区介绍| 德国一级在线视频| 亚洲午夜一级| 亚洲精品久久久久久久久久久久久| 欧美在线视频二区| 深夜成人福利| 国产精品丝袜在线| 91久热免费在线视频| 最近中文字幕免费mv2018在线| 国产一区啦啦啦在线观看| 插插插亚洲综合网| 欧美承认网站| 视频一区二区欧美| 午夜伦理精品一区| 日本成人网址| 国产日本亚洲高清| 国产传媒欧美日韩| 欧美三级电影网址| 精品视频一区二区不卡| av高清在线| 国产成人福利av| 日本成人在线视频网站| 日日摸夜夜添夜夜添精品视频| 亚洲成人一区在线| 色爱av美腿丝袜综合粉嫩av| 国产精彩免费视频| 第四色成人网| 亚洲久久久久久久久久| 国产一级视频| 国产一区二区三区成人欧美日韩在线观看| 亚洲国产精久久久久久| 久久久久久久久久久视频| 欧美va天堂| 一区二区三区天堂av| 自拍偷拍一区二区三区四区| 国产探花一区| 亚洲国语精品自产拍在线观看| 日韩中文字幕组| 理论电影国产精品| 91精品视频在线播放|