《Web前端黑客技術解密》讀書筆記(第三、四、五章)
本文地址:http://www.jianshu.com/p/486b3a10efb2
第三章 前端黑客之XSS
XSS型別
XSS有三類:反射性XSS(也叫非持久型XSS)、儲存型XSS(也叫持久型XSS)和 DOM XSS
- 反射性XSS
發出請求時,XSS程式碼出現在URL中,作為輸入提交到服務端,服務端解析後響應,然後XSS出現在響應,然後瀏覽器解析執行。
// 構造url http://foo.com/reflect.php?x=<script>alert(1)</script>
// 還可以構造base64加密方式
x=data:text/html;base64,PHNjcmlwdD5hbGVydCgnRVZBTCEhIScpPC9zY3JpcHQ+
- 儲存型XSS
提交資料會儲存在服務端,比較隱蔽
常見輸入點
- document.URL
- document.URLRnencoded
- document.location(及location其他屬性)
- document.referrer
- window.location
- window.name
- xhr(請求相關資料)
- document.cookie
- 表單值
常見輸出點
直接輸出HTML內容
- document.write()
- document.writeln()
- document.body.innerHtml=...
修改DOMshu樹及事件
- document.forms[0].action= ...
- document.attachEvent()
- document.create()
- document.execCommand()
- document.body
- window.attachEvent()
替換document URL
- document.location=...
- document.location.hostname=...
- document.location.replace
- document.location.assign()
- document.URL=...
- window.navigator...
開啟或修改視窗
- document.open
- window.open
- window.location.href=...
直接執行指令碼
- eval
- setInterval
- setTimeout
第四章 前端黑客之CSRF
全稱 Cross Site Request Forgery(跨站請求偽造)
偽造請求
偽造GET
正常網站 a.com,惡意網站 b.com,在b站通過建立
img
、script
、link
等標籤,誘惑使用者訪問b站,就跨站傳送GET請求
注意:
- 如果使用者在a.com中是登陸的,在跨站請求時也會帶上cookie等相關資訊,請求頭只有 referer 不同。
- 本地Cookie與記憶體Cookie在這種CSRF攻擊中對於IE瀏覽器有些不同,其不允許a網站的本地Cookie在跨域中帶上,除非在HTTP響應中設定P3P(Platform for Privacy Preferences)。非IE沒有這個限制
偽造POST
通過在惡意網站建立
form
新增 form的method為post,可以做到偽造POST請求,其他請求也類似
攻擊型別
按攻擊方式分為:HTML CSRF攻擊、JSON HiJacking攻擊和Falsh CSRF攻擊
HTML CSRF攻擊
- HTML
通過設定 src/href 等地址都可以發起GET請求
<link href=''>
<img src=''>
<img lowsrc=''>
<img dynsrc=''>
<meta http-equiv='refresh' content="0; url=''">
<iframe src=''>
<frame src=''>
<script src=''></script>
<bgsound src=''>
<embed src=''>
<video src=''>
<audio src=''>
<a src=''></a>
<table background=''></table>
// ...
- CSS
@import ''
background:url('')
對於POST請求只能通過 form 形式
JSON HiJacking
對AJAX響應中最常見的JSON資料型別進行劫持攻擊。尤其是JSONP形式url中的callback
Falsh CSRF攻擊
第五章 前端黑客之介面操作劫持
介面操作劫持分為三種
點選劫持(Clickjacking),拖動劫持(Drag & Drop jacking),觸屏劫持(Tapjacking)
- 在瀏覽器中,拖放操作是不受“同源策略”限制的,拖動這些連結的過程中可能會有
session key
、token
等
劫持原理
透明層+iframe
拖放通過dataTransfer物件(有個getData(), setData()方法)
-
拖放函式有:
- 滑鼠拖動一個滑鼠時:
ondrag
,ondragstart
,ondragend
- 將物件拖動到一個有效的目標時,目標物件會觸發:
ondragenter
,ondragover
,ondragleave
,ondrop
- 滑鼠拖動一個滑鼠時:
很多瀏覽器,尤其是移動端,可以滑動跨域
附原書購買地址: http://item.jd.com/11181832.html
相關文章
- [原創]京東技術解密讀書筆記解密筆記
- 讀《JavaScript核心技術開發解密》筆記JavaScript解密筆記
- 黑客與畫家讀書筆記黑客筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《四》表MySql儲存引擎筆記
- 《Google SRE 運維解密》讀書筆記Go運維解密筆記
- 《Web前端開發修煉之道》-讀書筆記CSS部分Web前端筆記CSS
- 讀書筆記-大型網站技術架構筆記網站架構
- 《淘寶技術這十年》讀書筆記筆記
- 《資料探勘概念與技術》讀書筆記筆記
- 【技術分享】《深入理解Elasticsearch》讀書筆記Elasticsearch筆記
- 『淘寶十年技術路』讀書筆記筆記
- 《大型網站技術架構》讀書筆記網站架構筆記
- 夜雨讀書筆記之《黑客與畫家》筆記黑客
- 《快速閱讀術》讀書筆記筆記
- 《前端面試江湖》讀書筆記前端面試筆記
- 《現代通訊網路技術》讀書筆記筆記
- 《淘寶技術這十年》讀書筆記 (四). 分散式時代和中介軟體筆記分散式
- 人月神話讀書筆記(四) (轉)筆記
- 《深入分析Java Web技術內幕》讀書筆記 - 第1章 深入Web請求過程JavaWeb筆記
- 【Laravel】Laravel 框架關鍵技術解析·讀書筆記(二)Laravel框架筆記
- 《白帽子講web安全》讀書筆記Web筆記
- 區塊鏈技術筆記四區塊鏈筆記
- 《圖解HTTP》讀書筆記四:HTTP 首部圖解HTTP筆記
- 《Pro Android Graphics》讀書筆記之第三節Android筆記
- 《寫給大家看的web設計書》讀書筆記Web筆記
- 讀書筆記...筆記
- 讀書筆記筆記
- Mysql技術內幕InnoDB儲存引擎讀書筆記--《六》鎖MySql儲存引擎筆記
- 《深入分析JavaWeb技術內幕》之讀書筆記(篇三)JavaWeb筆記
- 《深入淺出MyBatis--技術原理與實戰》讀書筆記MyBatis筆記
- 《讀書與做人》讀書筆記筆記
- 《Flask Web開發》讀書筆記【Windows環境】FlaskWeb筆記Windows
- 《flask Web 開發》讀書筆記 & chapter6FlaskWeb筆記APT
- 《黑客與畫家》之設計者的品味——讀書筆記黑客筆記
- 「修改軟體的藝術」 讀書筆記筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 熱修復技術介紹Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 程式碼熱修復技術Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 資源熱修復技術Android筆記