XSS漏洞原理 – 作者:NewC0mer

XSS(Cross Site Scripting)

跨站脚本,诞生于1996年,为了防止和CSS混淆固取名XSS

攻击者向WEB页面插入前端代码(HTML、CSS、JS等),让代码可以被浏览器执行,访问该页面的用户就会被攻击一般是插入恶意JS代码

一、基本介绍

本质: 由于过度信任用户的输入,导致对输入内容校验不严格,将用户输入的数据当作有效前端代码来执行

危害:

  • 会话劫持,盗取Cookie,伪装用户登陆
  • 窃取用户信息,强制弹出广告页面,页面篡改
  • 传播跨站蠕虫,网页挂马、提权

分类:

  • 按大类分:  可分为持久型和非持久型(又称为反射型)
  • 按形式分: 反射型、存储型、DOM型

漏洞点:

  • 数据交互的地方,输入框,URL参数,Cookie、POST表单、HTTP头、
  • 翻页功能处、留言板、评论栏、UR 哈希串中

测试流程:

  • 1.在目标站点上寻找,数据交互的地方,如:搜索框、留言板、URL参数、页码等地方
  • 2.输入一些,特殊字符,提交后,查看源码,是否对你的输入做了处理(特殊字符过滤或转义)
  • 3.通过搜索你的输入,查看到输出点处,是否可以对其进行标签或元素的闭合
  • 4.构造测试代码(payload),看是否可以成功执行,执行成功则存在XSS漏洞
  • : 如果在输入payload时有长度限制可以直接在查看当前输入点的源码处,修改标签属性绕过限制

二、详细剖析

反射型跨站脚本(Reflected Cross-site Scripting):

也称作非持久型、参数型跨站脚本、一次性

攻击流程: 前端输入→后端解析→前端输出

原理:

将用户输入的数据通过URL的形式直接或未经过完善的安全过滤就在浏览器中进行输出

导致输出的数据中存在可被浏览器执行的前端代码;因为只执行一次,且只有用户访问

有该漏洞的URL时才会触发攻击,所以一般被攻击者用来做钓鱼使用,诱骗受害者访

问该页面,从而完成攻击

存储型跨站脚本(Stored Cross-site Scripting):

持久型、比反射型危害更大

攻击流程: 前端输入→经过后端→存入数据库→前端调用数据→前端输出

原理:

将用户输入的数据通过后端存入网站数据库中,当网页被浏览时,网页进行

数据查询展示时,会从数据库中获取数据内容并将数据内容在网页中输出展

示,只要用户浏览了包含此恶意代码的页面就会触发攻击,此XSS不需要

用户访问特定的URL就能执行,攻击者事先将恶意恶意代码提交存储到服务器中

DOM型跨站脚本(DOM Cross-site Scripting):

类似反射型XSS,只不过反射型是由后端解析输出到前端DOM型是直接由前端的JS解析后输出,一次性

攻击流程: 前端输入前端JS解析输出

原理:

类似于反射型,只不过反射型的攻击代码在URL的参数当中,

而DOM型攻击代码在URL的哈希串中(URL中#号后面的部分)

攻击者构造好带有恶意代码的URL链接,诱使用户访问带有恶意代码的URL
用户通过浏览器打开时,JS解析URL中的恶意代码并执行

来源:freebuf.com 2021-07-29 00:21:51 by: NewC0mer

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论