《白帽子講web安全》讀書筆記
這篇是2018年讀書計劃裡面的一本書的讀書筆記。還好,基本上按計劃進行。
又是厚厚的一本書,為了不弄虛做假,只得變更計劃,這一次調整為讀前三章,安全世界觀,瀏覽器安全和xss。其它待用到時再專門深入學習。
吳翰清是本書作者,icon是一個刺字,圈內人稱道哥。曾供職於阿里,後創業,最後迴歸阿里。
更多關於作者的經歷可以參考這裡:
https://www.secpulse.com/archives/65276.html
1 安全世界觀
所有術的層面最後都回歸到道的層面,所以開篇的章節,作者從道講起。
這一部分需要思考的的第一個問題是:我們為什麼要研究web安全?
我心裡在想,和這個類似,區塊鏈安全需要我們關注嗎,為什麼?
第二個問題:白帽子的工作和黑帽子有何不同?我們要像黑帽子學習什麼?
第三個問題:安全的本質是什麼?
第四個問題:有沒有一勞永逸的安全方案?
第五個問題:請談一談你對安全三要素的理解。
第六個問題:請談一談安全評估做什麼?怎麼做?
第七個問題:白帽子在設計安全方案時,有哪些原則可以參考?它們分別應對或解決哪一方面的問題。
每一個問題都夠寫一篇小論文了。
2 瀏覽器安全
2.1 同源策略
同源策略限制來自不同源的document或指令碼對當前document或指令碼進行修改。
影響源的因素有協議、埠、域名。
script、img、iframe標籤卻可以跨域載入資源,實際上它們由瀏覽器發起了一次get請求,JavaScript不同於XMLhttprequest,不能讀寫返回的內容。
除了DOM,cookie,xmlhttprequest受同源策略限制,一些瀏覽器載入的第三方外掛也有各自的同源策略。
2.2 瀏覽器沙箱
瀏覽器沙箱主要是通過資源隔離,使得對瀏覽器所在的本機進行保護。但是現實中,也有人通過瀏覽器外掛漏洞來繞過。
2.3 惡意網址攔截
瀏覽器廠商和安全廠商合作,對惡意網址給使用者提醒。phishtank是一個免費提供惡意網址的機構,ev ssl是一種安全增強型證照。
2.4 瀏覽器新技術需要考慮的安全
使用者友好的功能需要關注,例如\和?的處理。擴充套件和外掛的安全。
3 XSS跨站指令碼攻擊
3.1 XSS概念和分類
前兩章基本是道的層面,這一章就開始更多關注術的層面。XSS英文是Cross Site Script,所謂的XSS攻擊是指黑客通過html注入,篡改了網頁,插入了惡意指令碼,從而在使用者瀏覽時控制使用者瀏覽器的一種攻擊。
<script>alert(CSS)</script>
只是我們驗證是否有xss的一種辦法,而真正的payload會實現更多邪惡的功能。
xss傳統上分為反射型和儲存型,DOM型,DOM其實也是一種反射型。
3.2 XSS 攻擊
XSS payload
這一節先介紹了cookie劫持,然後列舉了通過構造get和post請求結合XSS來獲取qq郵箱郵件列表,XSS釣魚,識別使用者瀏覽器,識別使用者軟體,識別使用者曾經訪問過的網站,獲取使用者真實IP等場景。
XSS攻擊平臺
常見的平臺有Attack Api,BeEF,XSS-Proxy。還有書中沒提到的,餘弦的XSS'OR,每天可以測試一次攻擊。 工具平臺可以為我們演示XSS危害提供幫助。
XSS蠕蟲
書中提到了MySpace曾經的Samy蠕蟲。真正可怕的蠕蟲會悄無聲息的竊取使用者祕密。
XSS構造技巧
常見技巧有利用編碼規則、突破長度限制、利用base標籤、window.name。此外,不要忽視flash、一些貌似只能攻擊自己的XSS如何利用、JS框架安全問題。 XSS與各種編碼請看這裡: https://blog.csdn.net/abc_ii/article/details/16891689
3.3 XSS防禦
HttpOnly
通過設定cookie的httponly屬性,抵禦xss後的cookie劫持攻擊。但是它並沒有解決XSS防禦。
輸入檢查
輸入檢查主要是對特殊字元如<,>,'等進行過濾。網上有很多XSS filter。 但是xss filter有可能對語境理解不充分,發生漏報或者轉義了使用者資料。
輸出檢查
PHP和JS中都有HtmlEncode功能相關的函式。但這並不意味著就可以完全抵禦XSS。書中舉了一例,由於html parser優於Javascript Parser執行,還是會造成XSS。
正確防禦思路
這一節(書中3.3.4)列舉了各種可能的html輸出中,如何防禦,如何攻擊。 網上應該有不少cheatsheet,也可以搜尋XSS cheatsheet瞭解更多。
處理富文字
如果網頁中允許使用者提交自定義的html程式碼就要關注這一節。
防禦DOM based XSS
主要是在javascript輸出html時,看輸出是到內容或屬性,還是事件或指令碼。分別執行不同的encode。前者htmlencode,後者javascriptencode。
業務視角看XSS
儲存型高於反射型,有使用者互動地方都有風險,PageView高的地方重點關注。
4 實驗環境
1、一個瀏覽器
能夠除錯Javascript的瀏覽器都應該可以。
2、Javascript除錯工具
書中提到的有Firebug,Fiddler,IE8開發者工具。
3、JavaScript除錯環境(內附JS學習網站)
http://lixiaolai.com/2016/07/31/makecs-simplest-js-dev-environment/
5 其它資源
線上java除錯工具
https://jsfiddle.net
BeeF
http://www.freebuf.com/sectool/4799.html
Attackapi框架
http://www.cnblogs.com/milantgh/p/3645166.html
XSS cheatsheet
sec-wiki查詢XSS
6 後續學習
如果要深入XSS,對JS必須深入學習。
How To Become A Hacker
https://people.redhat.com/zaitcev/notes/hacker-howto.html
7 寫的不錯,贊助一下
相關文章
- 讀《白帽子講web安全》 ——筆記Web筆記
- 《白帽子講Web安全》 讀書Web
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- 「構建安全的 PHP 應用」讀書筆記PHP筆記
- HTTP讀書筆記——瞭解Web及網路基礎HTTP筆記Web
- 《瘋狂Kotlin講義》讀書筆記4——流程控制Kotlin筆記
- postgres 讀書筆記筆記
- 讀書筆記2筆記
- 讀書筆記3筆記
- Cucumber讀書筆記筆記
- webpackDemo讀書筆記Web筆記
- Vue讀書筆記Vue筆記
- 散文讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- 《論語》讀書筆記筆記
- 《重構》讀書筆記筆記
- PMBook讀書筆記(一)筆記
- js高程讀書筆記JS筆記
- 【十年測試】烏雲安全白帽子聊聊介面測試
- 《如何有效閱讀一本書》讀書筆記筆記
- 讀書筆記(2)《微精通》筆記
- 【GO】《GO HANDBOOK》讀書筆記Go筆記
- 《Effective C++》讀書筆記C++筆記
- 編譯原理讀書筆記編譯原理筆記
- 類載入讀書筆記筆記
- 《Effective-Ruby》讀書筆記筆記
- 《CSS揭祕》讀書筆記CSS筆記
- C++讀書筆記:字串C++筆記字串
- 產品讀書筆記-需求筆記
- 《將心注入》讀書筆記筆記
- 《圖解 HTTP》 讀書筆記圖解HTTP筆記
- Raft論文讀書筆記Raft筆記
- 讀書筆記-沒有空白筆記
- JVM讀書筆記之OOMJVM筆記OOM
- swift語法-讀書筆記Swift筆記
- 《52講輕鬆搞定網路爬蟲》讀書筆記 - Session和Cookie爬蟲筆記SessionCookie
- 《瘋狂Kotlin講義》讀書筆記6——函式和Lambda表示式Kotlin筆記函式