前言
大家好,我是Leon-pi,可以叫我pipi,新人報道,是個菜鳥,由于個人也是在學習過程中,文章寫的也不是面面俱到,盡善盡美,請見諒。
XSS 之盲打
場景:
一個留言闆,隻有背景才能看見前端存在的内容,從前端無法确定是否存在XSS漏洞,假設存在XSS漏洞,直接往裡輸入 XSS 代碼,稱為盲打。
不論3721!,直接往裡面插入XSS代碼,然後等待,可能會有驚喜!!
被動等待.....(當背景管理者登陸時就可能被攻擊)
1 構造payload
<script>alert("attack!")</script>
複制
送出後,模拟管理者登入背景
2 模拟管理者登入背景
存在XSS漏洞,并且也是存儲型XSS
XSS 之過濾
1 随便輸入内容,然後輸入特殊字元('"<>)
2 輸入 payload
<script>alert("attack!")</script>
複制
什麼也沒發生,應該是過濾掉一些内容
3 嘗試繞過
改動大小寫
<SCRIPT>alert("attack!")</SCRIPT>
複制
img 中 onerror事件
<img src="x" onerror="alert('error!')">
複制
說明隻是過濾了大小寫,當然XSS繞過姿勢不止一種,師傅們自行擴充
XSS 之htmlspecialchars
htmlspecialchars函數概覽
調用該函數進行轉換的字元如下
函數轉換的類型
如果使用該函數對使用者的輸入進行處理,而保持預設轉換類型可能會出現 XSS漏洞
(僅編碼雙引号)
1 輸入 '"<>111
檢視源碼
'"<>111
從源代碼可以看出,單引号未進行過濾,隻是過濾了雙引号
2 輸入 payload
#' onclick='alert("aaa")
複制
XSS 之href輸出
javascript 僞協定
文法
javascript:someScript;
someScript 是一個或多個使用 ; 分隔的 JavaScript 語句
複制
執行個體
<a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>
複制
XSS href 輸出
- 輸出在 a 标簽的 href 屬性中,可以使用 JavaScript 協定來執行js
- 防禦:隻允許http,https,其次再進行 htmlspecialchars 處理
1 根據提示輸入網址,檢視源碼
2 點選連結跳轉至百度
2 使用 js協定 構造payload
javascript:alert("aaa")
複制
XSS之 js輸出
1 輸入aaa,檢視源碼
這裡發現輸入的内容被放入到了js中
2 構造payload
';alert("attack xss")</script>
複制
XSS 防範:輸入做過濾,輸出做轉義
結語:
本人菜弟弟一個,大佬勿噴,謝謝