天天看點

XSS_labs

LEVEL1

XSS_labs
XSS_labs

觀察發現,向伺服器傳入一個參數name,頁面會回顯出參數name的值和參數長度

檢視源代碼

XSS_labs

可以看到,值test被插入到<h2></h2>标簽之間,猜測為反射型XSS

在<script>裡,可以發現,調用alert時,我們就可以運作function()函數

由于不知道伺服器端對于送出的敏感字元有沒有過濾,是以這裡直接在name參數中指派一個簡單的彈窗來進行測試,采用标簽注入,注入js代碼

name=<script>alert('xss')</script>
      
XSS_labs

 檢視源代碼,可以看到伺服器傳回了送出的payload

XSS_labs

<script>alert('')</script>:XSS測試語句,彈出alert裡面的字元串内容

LEVEL2

XSS_labs

通過搜尋框輸入,傳入值為test的參數keyword,參數的值直接回顯在頁面

XSS_labs

分析代碼

在搜尋框内輸入<script>alert('xss')</script>

XSS_labs

發現頁面直接回顯出輸入的js語句

XSS_labs
XSS_labs

可以看到在<h2></h2>标簽中代碼被編碼了,但是插入到value參數值中的代碼并沒有。

js代碼在标簽屬性值中,浏覽器無法執行。要執行這裡的代碼,可以先閉合input标簽,然後注入代碼。

構造<script>alert('xss')</script>

"><script>alert('xss')</script>
      
XSS_labs
XSS_labs

LEVEL3

XSS_labs

在搜尋框内輸入test進行測試

XSS_labs
XSS_labs

發現頁面兩處地方回顯了值test

XSS_labs

發現這兩處的代碼都被編碼了

考慮采用<input>标簽的特殊事件來執行js代碼

因為标簽帶有”<"的,是以采用事件,需要閉合标簽的屬性

' onclick='alert(1)
      
XSS_labs
XSS_labs

 知識點

XSS_labs

LEVEL4

XSS_labs
XSS_labs

有兩處回顯

輸入<script>alert('xss')</script>測試

XSS_labs
XSS_labs

 1處對代碼進行了編碼,2處删除了<和>這兩個符号

采用事件注入代碼

" onclick="alert(1)"
      
XSS_labs
XSS_labs

LEVEL5

XSS_labs
XSS_labs

輸入<script>alert('xss')</script>

XSS_labs
XSS_labs

第二處代碼,在r和i之間插入了_符号

XSS_labs

采用事件注入,同樣插入了_

"><a href="javascript:alert(1)"