前言:有人曾經說過,XSS之是以那麼流行,就是因為每個網站,包括Google、Microsoft等,都會存在XSS漏洞!之前對XSS這塊“肥肉”隻是了解,沒有系統的學習一下。趁着暑假賦閑,來系統的剖析一下這塊‘肥肉’。
0x01 xss基礎
- Cross Site Script
- For web client
- 來源于js / ActiveX / Flash …
js xss使用場景
- 直接嵌入html:
<script>alert(/xss/);</script>
- 元素标簽事件:
<body onload=alert(/xss/)>
- 圖檔标簽:
<img src="javascript:alert(/xss/);">
- 其他标簽:
<iframe>,<div>, and <link>
- DOM對象,篡改頁面内容
XSS根據效果不同可分為以下幾類:
- 反射型XSS
- 存儲型XSS
- DOM Based XSS 通過修改DOM節點形成的XSS
易用性:2>3>1
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
0x02 XSS Payload
xss攻擊成功後,攻擊者能夠對使用者目前浏覽器的頁面植入惡意腳本,進而控制使用者浏覽器。這些惡意腳本,被稱為"XSS Payload"
Cookie劫持
1 2 3 4 5 6 7 8 | |
上面示範的就是最基本的xss 劫持Cookie的過程, 當你拿到使用者cookie後,怎麼用它登入伺服器呢?在這個過程,方法很多,這裡有兩種方法:
- Burpsuit proxy 修改cookie
- Firefox 插件 Data Tamper 截斷請求修改cookie
php XSS Cookie require
1 2 3 4 5 6 7 8 9 | |
将上述儲存到自己伺服器上,1.php
然後在XSS處寫入:
1 | |
構造GET與POST請求
XSS釣魚
識别使用者浏覽器
識别使用者安裝軟體
CSS History Hack
擷取使用者真實IP
0x03 XSS 攻擊平台
- Attack API
- BeEF
- XSS-Proxy
0x04 XSS Worm
0x05 XSS構造技巧
最最基本的構造技巧是“閉合标簽”,
利用字元編碼
這裡首先看下道哥在《白帽子講web安全》一書中講到的一種情況,就是當web頁面編碼方式為gbk/gb2312時,針對“%c1\”繞過系統轉義“的情況……
其次就是各種加密了
URL編碼 unicode編碼 HTML編碼
HTML編碼的存在就是讓他在代碼中和顯示中分開, 避免錯誤。他的命名實體:構造是&加上希臘字母,字元編碼:構造是&#加十進制、十六進制ASCII碼或unicode字元編碼,而且浏覽器解析的時候會先把html編碼解析再進行渲染。但是有個前提就是必須要在“值”裡,比如屬性src裡,但卻不能對src進行html編碼。不然浏覽器無法正常的渲染。
1 | |
CSS編碼
斜杠/加上1-6位16進制數
常見繞過方式
1 2 3 4 | |
繞過長度限制
1 2 | |
方法一:通過事件縮短payload
1 | |
方法二:使用location.hash 加載xss payload
1 2 3 4 5 6 7 8 9 | |
方法三:利用注釋符繞過長度限制
1 2 3 | |
使用标簽
标簽在html中的作用是為所有使用相對路徑的連結提供其實位址。
這個過程是可以被利用的,假設可以在頁面某處插入base标簽,并在自己伺服器上僞造payload相應的圖檔等連結,則可以達到攻擊效果
1 | |
window.name妙用
可以利用此實作跨域效果
1 2 3 4 5 6 7 | |
0x06 一些奇葩的攻擊手法
第三方劫持(外調J/C)
簡單的講就是去看你的目标站點引用了哪些外部站點js/css/swf/等,然後再入侵相應的外站,進而修改js/css/swf 達到xss的實作效果,采用“迂回式”的滲透方式
這裡引用“長短短”寫的一個擷取非本站的J/C代碼:
1 2 3 4 5 6 7 | |
隻需在浏覽器Console執行這段代碼即可
0x07 JavaScript開發架構XSS
JQuery
JQuery裡面有個html()方法,這個方法如果沒有參數,就會讀取一個DOM節點的innerHTML;如果有參數,則會把參數值寫入該DOM節點的innerHTML中。這個過程可能産生“DOM Based XSS”
1 | |
此外,其他一些例如 Dojo / YUI本身就存在XSS漏洞。
https://www.ohlinge.cn/web/xss.html
轉載于:https://www.cnblogs.com/amliaw4/p/5992165.html