xss-labs第三關


第三關

 

 

 老套路,有輸入框進行輸入隨意值查看返回,然后在輸入xss注入語句。

 

 

 

 

 

 沒結果,首先查看網頁端源碼進行分析。根據結果得出這次是真的過濾了尖括號。

 

 

 那我們嘗試第二關的方法,進行閉合value參數看看。

 

 

 

 

 

 

 

 

依舊是沒有結果,繼續查看網頁源碼。我們可以發現,閉合value屬性這個方法是可行的,但是后面執行<script>alert(1)</script>語句的尖括號還是被過濾了。

 

這時我們可以換一個思路,首先xss的全名是Cross Site Scripting(跨站腳本攻擊)。script標簽只是為了達成xss攻擊這個目的一個小小的手段,我們為了達成xss攻擊這個可以有多個手段。比方說使用其他屬性的語句,然后屬性的值是javascript的偽協議(javascript:這個特殊的協議類型聲明了URL的主體是任意的javascript代碼,它由javascript的解釋器運行)或者使用一些屬性,屬性里面運行alert(1)彈框語句。

可以構造如下的payload(ps:onmouseover 屬性在鼠標指針移動到元素上時觸發。)

' onmouseover=javascript:alert(1) '

 

或者構造

 

 

' onmouseover='alert(1) 

都可以完成攻擊。

 

 

 

 攻擊成功,查看下網頁端的源碼。成功閉合構造onmouseover屬性

 

 我們在查看后端源碼分析。使用了htmlspecialchars函數過濾輸入。

 

 我們來看看這個函數的功能

htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體。

預定義的字符是:

  • & (和號)成為 &
  • " (雙引號)成為 "
  • ' (單引號)成為 '
  • < (小於)成為 <
  • > (大於)成為 >

過濾了一些符號,但是我們這邊在閉合后使用其他屬性語句突破,壓根就沒有使用尖括號。

總結:面對一些過濾的時候,我們可以換個思路使用其他標簽或者屬性來繞過從而達到xss攻擊這個目的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM