基本信息
作者:鍾晨鳴 徐少培叢書名:安全技術大系
出版社:電子工業出版社
ISBN:9787121192036
上架時間:2013-1-20
出版日期:2013 年1月
開本:16開
頁碼:361
版次:1-1
在Web技術飛速演變、電子商務蓬勃發展的今天,企業開發的很多新應用程式都是Web應用程式,而且Web服務也被越來越頻繁地用於集成Web應用程式或與其進行互動,這些趨勢帶來的問題就是web套用系統的安全風險達到了前所未有的高度,在安全缺陷被利用時可能會出現災難性後果。
SQL注入+上傳Webshell這樣的攻擊成為了業界主流,幾乎對動態Web服務無往不利。大中型企業和機構紛紛增加了80連線埠的檢查和封堵。看到一些SQL注入攻擊被擋住的日誌,他們臉上露出了滿意的微笑……
可是,厲害的Web攻擊方式,就只有一個SQL注入嗎?
如果把SQL注入算做Web後端攻擊方式的話。那XSS和CSRF、ClickJacking等前端攻擊方式的運用則更為複雜。
在這本書中,作者向大家闡述了“草木竹石,均可為劍”的道理。在他們的眼中URL、HTML、JavaScript、CSS、ActionScript……幾乎每個地方都可以暗藏殺機。
內容提要
Web 前端的黑客攻防技術是一門非常新穎且有趣的黑客技術,主要包含Web 前端安全的跨站腳本(XSS)、跨站請求偽造(CSRF)、界面操作劫持這三大類,涉及的知識點涵蓋信任與信任關係、Cookie安全、Flash 安全、DOM 渲染、字元集、跨域、原生態攻擊、高級釣魚、蠕蟲思想等,這些都是研究前端安全的人必備的知識點。本書作者深入剖析了許多經典的攻防技巧,並給出了許多獨到的安全見解。
本書適合前端工程師閱讀,同時也適合對 Web 前端各類安全問題或黑客攻防過程充滿好奇的讀者閱讀,書中的內容可以讓讀者重新認識到Web 的危險,並知道該如何去保護自己以免受黑客的攻擊。
前言
安全之路任重道遠,前端安全是眾多安全中的一個分支,網際網路上各種網站讓人眼花,千奇百怪的業務需求、安全問題,真要做好安全架構又談何容易呢?我們知道,這次我們僅僅為網際網路安全的進化奠定了一塊磚頭而已。本書點透了很多關鍵的點,每個點的內容不一定覆蓋完全,也不一定用了足夠的文字進行描述,往往適可而止,但這些點卻是Web前端安全基石的重要組成,如:信任與信任關係、Cookie安全、Flash安全、DOM渲染、字元集、跨域、原生態攻擊、高級釣魚、蠕蟲思想等。
我們試圖盡最大的努力使本書的內容涵蓋完全,但發現這是不可能的事。聞道有先後,術業有專攻,我們寫出了我們擅長的點,還有很多點是我們不敢去寫的,時間與精力是我們最大的障礙。另外,我們認為,本書的知識點足以打開Web前端黑客的大門,有了這些沉澱後,大家完全可以持續跟進國內外優秀的技術文章與案例進行內功修煉,並在各種實戰中不斷加強。
網站安全是一個大問題,安全關注點也在逐漸轉移,從剛開始的服務端安全,如緩衝區溢出、CGI解析缺陷、純Web層面的SQL注入等,到客戶端安全,如XSS跨站腳本、CSRF跨站請求偽造等。大家的意識與防禦層面也隨著Web安全的發展進化著。對網站來說,重視某些安全風險最好的辦法就是將該風險最大化,這也是本書的目的,最終是讓Web更好、更安全。
一些約定
本書說的前端都指Web前端,也可以說是客戶端,或者瀏覽器端。
本書涉及的前端安全舞台基本上都是瀏覽器。瀏覽器更新換代的速度非常快,也許在你看到本書時,一些技巧已經不適用了。沒關係,因為思想更重要,我們在撰寫本書時默認使用的主流瀏覽器的最新版本是:Firefox 15、Chrome 21、IE 9。
前端黑客的內容
前端安全主要有三類:XSS、CSRF、界面操作劫持。從XSS到CSRF,再到界面操作劫持,越往後,社工(社會工程學的簡稱)成分越濃厚。我們會發現這個Web世界越不可信,攻擊也似乎變得越無聊,實施這類攻擊的代價也越來越大。界面操作劫持需要很好的美工基礎,因此,你讓一個黑客去搞美工是不太現實的,因為現在有很多好的方式可以黑下目標。
所以,本書關於界面操作劫持的內容更多的是具有研究性質的,而很少用於真正的攻擊,即使我們已經完成了一些很有意義的攻擊事件(比如,針對Google Reader的蠕蟲事件),但都是善意的,在真正的黑客攻擊活動中,這樣做的可能性很小。
有一點我們都應該明白,當前還不具備“黑客攻擊活動”價值的風險,以後可能會具備,回頭看看整個安全發展史就可以發現這個規律。至少XSS與CSRF已經具備這樣的價值,而且發展得如火如荼。這也是本書的重點內容。
為什麼進行前端黑客研究
Web從Web 1.0到Web 2.0,一個用戶參與度與黏性都很高的Web時代,且Web 2.0又細分出許多不同的領域(微博、旅遊、交友、餐飲、醫療、購物等),各種海量的隱私數據可以在這些Web 2.0網站中找到。前端黑客是隨著這個趨勢發展起來的,通過前端黑客技巧,往往很容易就掌控了目標用戶的隱私數據。
另外,攻擊時獲取各種隱私數據或者破壞數據,其實很多時候都可以在前端攻擊中完成,而且目前看來由於安全意識的問題,很多安全焦點都還在服務端,比如,OS(作業系統)加固得如何、資料庫加固得如何、SQL查詢是否參數化了、是不是存在弱口令等。那么,前端安全就被忽略了,在某些場景中,前端漏洞,比如一個XSS漏洞的價值就很大,而且前端攻擊同樣也可以大規模地進行,造成很大的影響。
我們在很多次的實戰中運用了前端黑客技術,這是一種具備實戰意義的技術,非常值得大家深入了解。
前端黑客技術的研究是一種趨勢,它已經成形了,這就是我們為什麼要介紹前端黑客的原因,也是本書誕生的最根本原因。
目錄
第1章 Web安全的關鍵點 11.1 數據與指令 1
1.2 瀏覽器的同源策略 4
1.3 信任與信任關係 7
1.4 社會工程學的作用 9
1.5 攻防不單一 9
1.6 場景很重要 10
1.7 小結 11
第2章 前端基礎 12
2.1 W3C的世界法則 12
2.2 URL 14
2.3 HTTP協定 15
2.4 鬆散的HTML世界 19
2.4.1 DOM樹 20
2.4.2 iframe內嵌出一個開放的世界 21
2.4.3 HTML內嵌腳本執行 22
2.5 跨站之魂——JavaScript 23
2.5.1 DOM樹操作 23
2.5.2 AJAX風險 25
2.5.3 模擬用戶發起瀏覽器請求 30
2.5.4 Cookie安全 33
2.5.5 本地存儲風險 43
2.5.6 E4X帶來的混亂世界 48
2.5.7 JavaScript函式劫持 49
2.6 一個偽裝出來的世界——CSS 51
2.6.1 CSS容錯性 51
2.6.2 樣式偽裝 52
2.6.3 CSS偽類 52
2.6.4 CSS3的屬性選擇符 53
2.7 另一個幽靈——ActionScript 55
2.7.1 Flash安全沙箱 55
2.7.2 HTML嵌入Flash的安全相關配置 59
2.7.3 跨站Flash 61
2.7.4 參數傳遞 64
2.7.5 Flash里的內嵌HTML 65
2.7.6 與JavaScript通信 67
2.7.7 網路通信 71
2.7.8 其他安全問題 71
第3章 前端黑客之XSS 72
3.1 XSS概述 73
3.1.1 “跨站腳本”重要的是腳本 73
3.1.2 一個小例子 74
3.2 XSS類型 76
3.2.1 反射型XSS 76
3.2.2 存儲型XSS 77
3.2.3 DOM XSS 78
3.3 哪裡可以出現XSS攻擊 80
3.4 有何危害 81
第4章 前端黑客之CSRF 83
4.1 CSRF概述 84
4.1.1 跨站點的請求 84
4.1.2 請求是偽造的 84
4.1.3 一個場景 84
4.2 CSRF類型 89
4.2.1 HTML CSRF攻擊 89
4.2.2 JSON HiJacking攻擊 90
4.2.3 Flash CSRF攻擊 94
4.3 有何危害 96
第5章 前端黑客之界面操作劫持 97
5.1 界面操作劫持概述 97
5.1.1 點擊劫持(Clickjacking) 98
5.1.2 拖放劫持(Drag&Dropjacking) 98
5.1.3 觸屏劫持(Tapjacking) 99
5.2 界面操作劫持技術原理分析 99
5.2.1 透明層+iframe 99
5.2.2 點擊劫持技術的實現 100
5.2.3 拖放劫持技術的實現 101
5.2.4 觸屏劫持技術的實現 103
5.3 界面操作劫持實例 106
5.3.1 點擊劫持實例 106
5.3.2 拖放劫持實例 111
5.3.3 觸屏劫持實例 119
5.4 有何危害 121
第6章 漏洞挖掘 123
6.1 普通XSS漏洞自動化挖掘思路 124
6.1.1 URL上的玄機 125
6.1.2 HTML中的玄機 127
6.1.3 請求中的玄機 134
6.1.4 關於存儲型XSS挖掘 135
6.2 神奇的DOM渲染 135
6.2.1 HTML與JavaScript自解碼機制 136
6.2.2 具備HtmlEncode功能的標籤 140
6.2.3 URL編碼差異 142
6.2.4 DOM修正式渲染 145
6.2.5 一種DOM fuzzing技巧 146
6.3 DOM XSS挖掘 150
6.3.1 靜態方法 150
6.3.2 動態方法 151
6.4 Flash XSS挖掘 153
6.4.1 XSF挖掘思路 153
6.4.2 Google Flash XSS挖掘 156
6.5 字元集缺陷導致的XSS 159
6.5.1 寬位元組編碼帶來的安全問題 160
6.5.2 UTF-7問題 161
6.5.3 瀏覽器處理字元集編碼
BUG帶來的安全問題 165
6.6 繞過瀏覽器XSS Filter 165
6.6.1 回響頭CRLF注入繞過 165
6.6.2 針對同域的白名單 166
6.6.3 場景依賴性高的繞過 167
6.7 混淆的代碼 169
6.7.1 瀏覽器的進制常識 169
6.7.2 瀏覽器的編碼常識 175
6.7.3 HTML中的代碼注入技巧 177
6.7.4 CSS中的代碼注入技巧 190
6.7.5 JavaScript中的代碼注入技巧 196
6.7.6 突破URL過濾 201
6.7.7 更多經典的混淆CheckList 202
6.8 其他案例分享——Gmail Cookie XSS 204
第7章 漏洞利用 206
7.1 滲透前的準備 206
7.2 偷取隱私數據 208
7.2.1 XSS探針:xssprobe 208
7.2.2 Referer惹的禍 214
7.2.3 瀏覽器記住的明文密碼 216
7.2.4 鍵盤記錄器 219
7.2.5 偷取黑客隱私的一個小技巧 222
7.3 區域網路滲透技術 223
7.3.1 獲取區域網路IP 223
7.3.2 獲取區域網路IP連線埠 224
7.3.3 獲取區域網路主機存活狀態 225
7.3.4 開啟路由器的遠程訪問能力 226
7.3.5 區域網路脆弱的Web套用控制 227
7.4 基於CSRF的攻擊技術 228
7.5 瀏覽器劫持技術 230
7.6 一些跨域操作技術 232
7.6.1 IE res:協定跨域 232
7.6.2 CSS String Injection跨域 233
7.6.3 瀏覽器特權區域風險 235
7.6.4 瀏覽器擴展風險 237
7.6.5 跨子域:document.domain技巧 240
7.6.6 更多經典的跨域索引 245
7.7 XSS Proxy技術 246
7.7.1 瀏覽器<script>請求 247
7.7.2 瀏覽器跨域AJAX請求 248
7.7.3 服務端WebSocket推送指令 249
7.7.4 postMessage方式推送指令 251
7.8 真實案例剖析 254
7.8.1 高級釣魚攻擊之百度空間登錄DIV層釣魚 254
7.8.2 高級釣魚攻擊之Gmail正常服務釣魚 261
7.8.3 人人網跨子域盜取MSN號 265
7.8.4 跨站獲取更高許可權 267
7.8.5 大規模XSS攻擊思想 275
7.9 關於XSS利用框架 276
第8章 HTML5安全 277
8.1 新標籤和新屬性繞過黑名單策略 278
8.1.1 跨站中的黑名單策略 278
8.1.2 新元素突破黑名單策略 280
8.2 History API中的新方法 282
8.2.1 pushState()和replaceState() 282
8.2.2 短地址+History新方法=完美隱藏URL惡意代碼 283
8.2.3 偽造歷史記錄 284
8.3 HTML5下的殭屍網路 285
8.3.1 Web Worker的使用 286
8.3.2 CORS向任意網站傳送跨域請求 287
8.3.3 一個HTML5殭屍網路實例 287
8.4 地理定位暴露你的位置 290
8.4.1 隱私保護機制 290
8.4.2 通過XSS盜取地理位置 292
第9章 Web蠕蟲 293
9.1 Web蠕蟲思想 294
9.2 XSS蠕蟲 295
9.2.1 原理+一個故事 295
9.2.2 危害性 297
9.2.3 SNS社區XSS蠕蟲 300
9.2.4 簡約且原生態的蠕蟲 304
9.2.5 蠕蟲需要追求原生態 305
9.3 CSRF蠕蟲 307
9.3.1 關於原理和危害性 307
9.3.2 譯言CSRF蠕蟲 308
9.3.3 飯否CSRF蠕蟲——邪惡的Flash遊戲 314
9.3.4 CSRF蠕蟲存在的可能性分析 320
9.4 ClickJacking蠕蟲 324
9.4.1 ClickJacking蠕蟲的由來 325
9.4.2 ClickJacking蠕蟲技術原理分析 325
9.4.3 Facebook的LikeJacking蠕蟲 327
9.4.4 GoogleReader的ShareJacking蠕蟲 327
9.4.5 ClickJacking蠕蟲爆發的可能性 335
第10章 關於防禦 336
10.1 瀏覽器廠商的防禦 336
10.1.1 HTTP回響的X-頭部 337
10.1.2 遲到的CSP策略 338
10.2 Web廠商的防禦 341
10.2.1 域分離 341
10.2.2 安全傳輸 342
10.2.3 安全的Cookie 343
10.2.4 優秀的驗證碼 343
10.2.5 慎防第三方內容 344
10.2.6 XSS防禦方案 345
10.2.7 CSRF防禦方案 348
10.2.8 界面操作劫持防禦 353
10.3 用戶的防禦 357
10.4 邪惡的SNS社區 359
作者簡介
鍾晨鳴,畢業於北京化工大學,網名:餘弦。國內著名Web安全團隊xeye成員,除了愛好Web Hacking外,還對宇宙學、人類學等保持著濃厚興趣。2008年加入北京知道創宇信息技術有限公司,現任研究部總監,團隊致力於Web安全與海量數據研究,並進行相關超酷平台的實現。徐少培,畢業於河北工業大學。網名:xisigr。國內著名Web安全團隊xeye成員。2008年加入北京天融信公司,現任北京天融信資深安全專家,重點負責安全研究工作,主要研究領域包括:WEB安全、HTML5安全、瀏覽器安全、協定分析等。同時也是國內信息安全大會常見的演講者。
媒體評論
《Web前端黑客技術揭秘》是每名Web前端工程師都必備的安全參考書。鍾晨鳴先生與徐少培先生是我多年的好友,他們在Web安全領域有著很深的造詣。這本書是他們多年經驗的總結,深入剖析了Web前端安全的方方面面,很多獨特的見解發人深省。對於安全從業者和對網際網路安全關心的讀者,這本書是不容錯過的上上之選。——吳翰清《白帽子講Web安全》作者,安全寶聯合產品副總裁,
前阿里巴巴集團高級安全專家
通過Web前端套用對Web用戶個人敏感信息進行攻擊已經成為當前主流的攻擊手段之一。本書作者是國內Web前端安全研究的資深專家,本書也是國內迄今為止在這一領域內最為全面和深刻的專著。作者用生動詼諧的語言為我們全面刨析了當前Web前端黑客的各種技術,對專業的安全工作者、瀏覽器開發人員、Web開發人員具有很好的參考價值,對提升廣大Web用戶自身的安全防範意識和知識也有很好的借鑑意義,推薦大家閱讀。
——姚崎北京天融信公司副總裁
時至今日,我已經擁有過萬的信息安全學員,但每逢學員讓我推薦實戰技術參考書時,都為推薦好書發愁,而這本書的誕生帶來了攻防實戰技術耀眼的光芒。本書既講解了先進的XSS精粹,又展示了“借刀殺人、殺人不見血”的CSRF威力,通過研讀該書,滲透測試與應急回響工程師將能收穫詳盡的理論知識和最新實踐指南;風險評估與安全審計工程師閱讀後將能透徹了解到Web2.0的新威脅,他們將不得不擴展評估和審計的技術標準;IT運維安全工程師們閱讀後,將會意識到新的噩夢已經到來,為避免更多網站成為攻擊目標,唯一做的就是積極學習、與時俱進!
——張勝生 CISSP/CISP/CISA/攻防技術資深講師,
網路犯罪重現與偵查雲端平台總設計師
隨著Web 2.0的發展,Web前端攻擊已逐漸成為主流攻擊方式之一,但目前業界對Web前端安全方面的研究成果並沒有系統的輸出。今日有幸能優先拜讀《Web前端黑客技術揭秘》一書,才發現原來已經有人在進行這方面的工作了。通讀下來發現該書是兩位作者對Web安全技術多年的系統研究和技術沉澱,涵蓋了Web前端安全的方方面面,是一本能提升業界整體Web安全水平的得力之作。力薦!此外,兩位作者鍾晨鳴先生與徐少培先生都憑藉深厚的Web安全技術功底多次幫助騰訊提升產品的安全質量,在此一併表示感謝。
——lake2 騰訊安全應急回響中心經理
鍾晨鳴先生和徐少培先生是我多年來的摯友,很高興終於看到這本書的面世,在我所熟悉的Web領域裡,本書絕對是國內Web安全書籍中的首選,書中許多經典的case和思路,都是二位多年寶貴經驗的總結,對於喜愛Web安全的同學和相關從業人員來說,細細研讀該書一定能使讀者對Web安全領域達到一個更深層的認識。
——羅詩堯《黑客攻防實戰》系列圖書作者,
新浪微博套用安全技術專家、微博安全中心負責人,前百度高級工程師