C++的new和delete
阿新 • • 發佈:2020-08-22
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()函式可進行繞過利用大小寫,或雙寫繞過。
- 大小寫繞過
<Script>alert(123)</Script>
- 雙寫繞過
<scr<script>ipt>alert(123)</script>
級別:High
原始碼分析:利用preg_replace()函式正則匹配,對<script>
進行了替換為空
漏洞利用:事件型彈框
<img src=1 onerror=alert(123)>
級別:Impossible
原始碼分析:利用htmlspecialchars()函式把預定義字元轉換為html實體,防止瀏覽器將其作為HTML元素。
儲存型XSS
攻擊者提交的惡意指令碼會被儲存到伺服器上。觸發方式與上述相同,不在贅述。
JS觸發方法:
- 標籤觸發
<script>alert(123)</script>
- 事件觸發
<img src='a' onerror=alert(123)>
- 偽協議
<a href=javascript:alert(123)>123</a>
防禦: