1. 程式人生 > 實用技巧 >Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree

Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree

XSS

XSS,全稱Cross Site Scripting,及跨站指令碼攻擊,某種意義上也是一種注入攻擊,是指攻擊者在頁面中注入惡意的指令碼程式碼,當受害者訪問該頁面時,惡意程式碼會在其瀏覽器上執行,需要強調的是,XSS不僅僅限於JavaScript,還包括flash等其他指令碼語言。分為儲存型XSS與反射型XSS。

DOM型XSS,是一種基於DOM樹的XSS,可能是儲存型,也可能是反射型。、

反射型XSS

級別:Low

原始碼分析:對使用者輸入的資料進行直接原樣輸出,沒有任何過濾與防護。

漏洞利用:指令碼直接彈框驗證

<script>alert(123)</script>

級別:Medium

原始碼分析:利用str_replace()函式對傳入引數進行了替換為空

漏洞利用:str_replace()函式可進行繞過利用大小寫,或雙寫繞過。

  1. 大小寫繞過
<Script>alert(123)</Script>
  1. 雙寫繞過
<scr<script>ipt>alert(123)</script>

級別:High

原始碼分析:利用preg_replace()函式正則匹配,對<script>進行了替換為空

漏洞利用:事件型彈框

<img src=1 onerror=alert(123)>

級別:Impossible

原始碼分析:利用htmlspecialchars()函式把預定義字元轉換為html實體,防止瀏覽器將其作為HTML元素。

儲存型XSS

攻擊者提交的惡意指令碼會被儲存到伺服器上。觸發方式與上述相同,不在贅述。

JS觸發方法

  1. 標籤觸發

<script>alert(123)</script>

  1. 事件觸發

<img src='a' onerror=alert(123)>

  1. 偽協議

<a href=javascript:alert(123)>123</a>

防禦