xss相关知识点与绕过思路总结

前言

对xss的绕过进行了系统的学习与实践后,重新审视一下xss,对他的绕过进行一个总结。

(当然我也是个小白,这些也是我当时瞎鸡儿乱搞绕过了几个xss自己做的小总结)

可能有点丑陋,献丑了。

好博客推荐

这段时间的实践中,我看了这篇博客,里面内容十分详细,我这里推荐一下,也以便以后好寻找使用:

XSS总结 - 先知社区

没错就是他,特别赞。

基本的绕过标签等都在这个博客中,我就省略了,感觉我再怎么整理也比不上他。

我这里整理一下我遇到的实战中的一些特定条件下的xss绕过思路。

前置测试阶段

1.随便输入看源码

我喜欢先找几个有回显的地方看他的源码,了解一下他的闭合情况。

2.输入所有用到的特殊符号,观察他的转义或者是过滤情况

< > ' " & # /

长度限制突破

很多时候我们会遇到一些输入框,看起来可能能绕过,但是它限制了长度,导致很难办。

1.前端校验

这个没什么好说的,看标签里的max属性直接删除就行。

2.选择性编码

有时候我们是需要编码绕过的,但是我们直接全部编码就会很长,对于那些检测关键字的,我们可以选择性的在关键字中只编码某一个字符,尽最大程度减少长度。

关键词检测突破

很多时候,尤其是网站安装了waf之后,基本上都会检测我们的关键词。这时候就需要对关键词进行一下修饰。

1.最简单的替换

替换标签,替换属性,替换为他不检测的标签或者属性。

2.html编码(不过滤编码字符)

但是这种编码有个前提,我们他不会过滤我们的编码字符;&#

3.html编码(仅过滤;)

这个是我实战中遇到的一个,他会过滤alert和;。我们可以把这个检测字符末尾的t给编码,同时去掉;,这样配合()就能完成一个绕过。

遇到这种检测关键词,并且过滤;的情况,可以尝试编码关键词的最后一个词配合空格或者其他的词来进行绕过尝试

4.eval绕过

这种通常是针对过滤我们执行的代码的检测,我们获取cookie等操作被检测的话,如果他没有过滤eval,就可以用很多种编码类型去进行绕过。

5.空格绕过

在他检测的关键字之间添加空格,他会检测不到我们的关键词,但是html是可以正常执行我们的语句的。(在一定的条件下可以执行)

过滤删除类型绕过

这类检测的形式是强行把我们的关键词或者字符给删除。针对他删除的特性可以(尝试)一下几种方法。

1.嵌套绕过

比如他过滤on(一种很通杀的过滤,直接干掉大部分的自动触发属性),我们可以使用oonn来尝试过滤,因为他可能会过滤一次,如果他没有循环检测过滤的话,我们就可以利用这种方法绕过。

2.大小写绕过

有可能他没有写转化为小写的代码,导致被绕过。

3.编码绕过

这个前提还是别把我们的符号给过滤掉

4.eval绕过

添加类型过滤绕过

有时候他会强行给我们关键字添加-导致我们无法组成关键字。

这种就是不能嵌套过滤,只能大小写配合编码绕过,或者直接    换!

隐藏标签绕过

有些标签是用来接收信息的,但是他设置了type=hidden,导致我们看不到,我们只需要再加一个type在他前面就可以绕过

数据包中构造xss

有些xss是出现在数据包中的,比如他可能会检测我们的浏览器类型,或者是referer等,这种我们可以通过在数据包中构造xss语句进行一个测试xss。

符号过滤绕过

1.html编码绕过

用于没过滤& # ;这种情况

2.十六进制绕过

javascript也可以识别16进制,所以也可以尝试使用16进制在javascript中进行绕过。

3.双\\+unicode绕过

javascript也可以识别这个,所以也可以用他来拼凑成<>进行一个绕过

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成式人工智能与 LangChain(预览)(上)

原文&#xff1a;Generative AI with LangChain 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、生成模型是什么&#xff1f; 人工智能&#xff08;AI&#xff09;取得了重大进展&#xff0c;影响着企业、社会和个人。在过去的十年左右&#xff0c;深度学习已经发…

【从零到一手撕脚手架 | 第四节】加速开发效率 使用plop生成开发模板 使用mock进行数据模拟

【从零到一手撕脚手架 | 第四节】加速开发效率 使用plop生成开发模板 使用mock进行数据模拟 Hello大家好我是⛄&#xff0c;之前我们已经配置了脚手架需要具备的基本功能&#xff1a;代码封装&#xff0c;团队协作规范等。但是可能我们有其他的需求&#xff0c;比如说我们想快速…

副业选择攻略:如何找到最适合自己的那一个?

大家好&#xff0c;我是木薯。今天有个新人伙伴来咨询客服&#xff1a;新手适不适合在水牛社上做副业&#xff1f;什么样的副业适合自己&#xff1f; 这种问题其实对我们来说已经见得太多太多了&#xff0c;归其原因是因为自己对副业没有一个清晰的自我认知&#xff0c;从而感觉…

基于LEAP模型的能源环境发展、碳排放建模预测及不确定性分析

在国家“3060”碳达峰碳中和的政策背景下&#xff0c;如何寻求经济-能源-环境的平衡有效发展是国家、省份、城市及园区等不同级别经济体的重要课题。根据国家政策、当地能源结构、能源技术发展水平以及相关碳排放指标制定合理有效的低碳能源发展规划需要以科学准确的能源环境发…

前视声呐目标识别定位(九)-声呐驱动

前视声呐目标识别定位&#xff08;一&#xff09;-基础知识 前视声呐目标识别定位&#xff08;二&#xff09;-目标识别定位模块 前视声呐目标识别定位&#xff08;三&#xff09;-部署至机器人 前视声呐目标识别定位&#xff08;四&#xff09;-代码解析之启动识别模块 …

Spring——框架介绍

每一个Java技术中都会存在一个“核心对象”&#xff0c;这个核心对象来完成主要任务为了得到核心对象&#xff0c;需要创建若干个辅助对象&#xff0c;从而导致开发步骤增加JDBC中 JDBC 核心对象——PreparedStatement 通过DriverManager得到数据库厂商提供的Driver对象DriverM…

京东云轻量云主机8核16G配置租用价格1198元1年、4688元三年

京东云轻量云主机8核16G服务器租用优惠价格1198元1年、4688元三年&#xff0c;配置为8C16G-270G SSD系统盘-5M带宽-500G月流量&#xff0c;华北-北京地域。京东云8核16G服务器活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云8核16G服务器优惠价格 京东云…

MySQL数据库基础--存储引擎

MySQL体系结构 连接层 最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理&#xff0c;授权认证&#xff0c;及相关的安全方案&#xff0c;服务器也会为安全接入的每个客户端验证他所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功…

【C++入门】缺省参数、函数重载与引用

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

就业班 第二阶段(python) 2401--4.3 day2 python2

七、标准数据类型 1、为什么编程语言中要有类型 类型有以下几个重要角色&#xff1a; 对机器而言&#xff0c;类型描述了内存中的电荷是怎么解释的。 对编译器或者解释器而言&#xff0c;类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。 对程序员而言…

C++算法 —— 递归

一、汉诺塔问题 1.链接 面试题 08.06. 汉诺塔问题 - 力扣&#xff08;LeetCode&#xff09; 2.描述 3.思路 4.参考代码 class Solution { public:void hanota(vector<int>& A, vector<int>& B, vector<int>& C) {dfs(A.size(),A,B,C);}void…

MySQL中的锁(二) - 行锁

一、行锁简介 MySQL中行锁是一种用于控制并发访问的锁机制&#xff0c;它可以在事务中对数据库表的行进行加锁&#xff0c;以保证数据的一致性和完整性。行锁是MySQL中最细粒度的锁&#xff0c;只锁定事务需要修改的数据行&#xff0c;而不是锁定整个表或者数据库。 MySQL行锁…

Java项目:基于Springboot+vue社区医院管理系统设计与实现(源码+数据库+毕业论文)

一、项目简介 本项目是一套基于Springbootvue社区医院管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

百元不入耳蓝牙耳机哪个好?必入五款高性价比产品

喜欢听歌的朋友都会遇到一个常见问题&#xff0c;长时间戴耳机容易导致耳朵不适&#xff0c;甚至疼痛难忍。这种情况下&#xff0c;要是不听音乐反而感到不舒服&#xff0c;真是让人苦恼&#xff0c;仿佛音乐与耳机无法和谐共存。但是&#xff0c;难道就没有一款既舒适又让人心…

【STL】list的底层原理及其实现

文章目录 list的介绍list的整体结构设计list的构造代码模拟实现&#xff1a; list节点类的实现list 迭代器Iterator的使用以及实现Iterator的使用Iterator的底层实现反向迭代器 list与vector的比较实现list类 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列…

4.7学习总结

java学习 一.Stream流 (一.)概念: Stream将要处理的元素集合看作一种流&#xff0c;在流的过程中&#xff0c;借助Stream API对流中的元素进行操作&#xff0c;比如&#xff1a;筛选、排序、聚合等。Stream流是对集合&#xff08;Collection&#xff09;对象功能的增强&…

使用ShardingSphere报错

使用ShardingSphere报错 1604 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near SHOW VARIABLES LIKE sql_mode; SELECT COUNT(*) AS support_ndb FROM information_ at line 1报错…

【STL学习】(4)vector的模拟

前言 本文将模拟实现vector的常用功能&#xff0c;目的在于更深入理解vector。 一、前置知识 在模拟之前先对vector的结构和常用接口学习&#xff0c;有一个大致了解。看源码&#xff0c;本文参考的源码是SGI版本的stl3.0。 技巧&#xff1a; 看源码不要一行一行的看&#xff…

全局监听钩子实现 笔记本x键坏了用其他键代替,或者类似游戏一键连招功能实现 (附带脚本开机一键运行)

前言 问题:博主使用笔记本时擦键盘不小心 进水了导致 坏了2个键盘 更换太麻烦所以想出了几个方法 1 系统自带的模拟键盘 可是每次都要点出来太麻烦 2 使用第三方工具 结果只找到github源码 下载地址找不到 /(ㄒoㄒ)/~~ 3 使用java方法 KeyListener 使用KeyListener监听键盘事件…

【全套源码教程】基于SpringBoot+MyBatis+Vue的流浪动物救助网站的设计与实现

目录 前言 需求分析 可行性分析 技术实现 后端框架&#xff1a;Spring Boot 持久层框架&#xff1a;MyBatis 前端框架&#xff1a;Vue.js 数据库&#xff1a;MySQL 功能介绍 前台界面功能介绍 动物领养及捐赠 宠物论坛 公告信息 商品页面 寻宠服务 个人中心 购…