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>

 

 

 

posted @ 2022-03-14 22:31  mt0u  阅读(1081)  评论(0编辑  收藏  举报