XSS学习笔记

XSS跨站脚本攻击是一种常见的网络安全威胁,分为存储型、反射型和DOM型。攻击者通过注入恶意脚本,影响用户浏览器行为,可能导致Cookie盗窃或蠕虫传播。防御措施包括数据过滤、编码和使用XSS防护规则。了解常见绕过技巧,有助于提升网站安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理

XSS(Cross Site Scripting)跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击。

分类

存储型:

持久化,代码存储在服务器中。如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那这些代码将存储到服务器中,用户访问该页面时会触发代码执行。这种XSS比较危险,容易造成蠕虫、盗窃cookie。

反射型:

非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面,多数情况下用来盗取用户的Cookie信息。

DOM型:

不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Object Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,也属于反射型XSS。

漏洞成因

当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生XSS漏洞。主要场景有以下几种:

  • 将不可信数据插入到HTML标签之间 # div,p,td
  • 将不可信数据插入到HTML属性里 #
  • 将不可信数据插入到SCRIPT里 #
  • 将不可信数据插入到Style属性里 #
  • 将不可信数据插入到HTML URL里 #
  • 使用富文本时,没有使用XSS规则引擎进行编码过滤

几种常见的绕过方法

  • 回车Tab绕过过滤

    • 空格间隔

      ​< img src="javas	cript:alert(/xss/)" width=100>
      
    • 回车间隔

      <img src="javas 
      cript:
      alert(/xss/)" width=100>
      
  • 对标签属性值进行转码

      <img src="javascript:alert('xss');">
      # 替换成:
      <img src="javascrip&#116&#58alert('xss');">   # 字母t的ASCII码为116,加上&#可以被web识别,符号:的ASCII码为58
      # 再进行进一步替换:
      <img src="javascrip&#00058alert('xss');">
    
  • 扰乱XSS过滤规则

    • 转换大小写

    • 用单引号代替双引号

    • 利用注释符

         <div style="wid/**/th:expre/*111*/ssion(alert('xss'));">
      

学习博客:

XSS(跨站脚本攻击)详解 - 墨鱼菜鸡 - 博客园 (cnblogs.com)

这一次,彻底理解XSS攻击 - 掘金 (juejin.cn)

网络安全自学篇(十八)| XSS跨站脚本攻击原理及代码攻防演示(一) - 云+社区 - 腾讯云 (tencent.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值