当前位置: 首页 > news >正文

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

前言

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

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

可能有点丑陋,献丑了。

好博客推荐

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

XSS总结 - 先知社区

没错就是他,特别赞。

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

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

前置测试阶段

1.随便输入看源码

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

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

< > ' " & # /

长度限制突破

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

1.前端校验

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

2.选择性编码

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

关键词检测突破

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

1.最简单的替换

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

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

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

3.html编码(仅过滤;)

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

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

4.eval绕过

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

过滤删除类型绕过

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

1.嵌套绕过

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

2.大小写绕过

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

3.编码绕过

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

4.eval绕过

添加类型过滤绕过

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

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

隐藏标签绕过

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

数据包中构造xss

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

http://www.lryc.cn/news/331689.html

相关文章:

  • 深入解析语言模型:原理、实战与评估
  • Elasticsearch 的索引优化常规项
  • 【JavaParser笔记01】JavaParser解析Java源代码中的类信息(javadoc注释、类​​​​​​​名称)
  • Stable Diffusion扩散模型【详解】小白也能看懂!!
  • 关于rabbitmq的prefetch机制
  • 机器学习介绍
  • OpenCV4.9开发之Window开发环境搭建
  • DDD 中的实体和值对象有什么区别?
  • 算法-最值问题
  • Go 性能压测工具之wrk介绍与使用
  • 数学思想论(有目录)
  • C++的并发世界(五)——线程状态切换
  • C语言——指针
  • 手搓二分查找
  • pycharm调试(步过(Step Over)、单步执行(Step Into)、步入(Step Into)、步出(Step Out))
  • Linux是什么,该如何学习
  • C++ | Leetcode C++题解之第7题整数反转
  • Linux------一篇博客了解Linux最常用的指令
  • vscode安装通义灵码
  • RIP协议(路由信息协议)
  • SpringBoot根据配置类动态加载不同环境下的自定义配置
  • 什么?穷哥们没钱RLHF?跟我一起DPO吧,丐版一样用
  • 【Leetcode笔记】102.二叉树的层序遍历
  • 进程的状态
  • spring-boot集成websocket
  • 【Python】【Flask】提交表单后报500错误
  • Golang vs Java
  • HomePlug AV
  • 【面试八股总结】超文本传输协议HTTP(二)
  • SQL Server中视图使用子查询的性能影响与优化方案