top10之XSS(详尽版)~原理、类型、绕过方法

目录

一、什么是XSS攻击?

二、XSS产生的原因

三、常用的XSS攻击手段和目的

四、XSS攻击流程

五、预防措施

六、类型

七、攻击场景

八、XSS绕过常用方法

九、跨站脚本漏洞测试流程

一、什么是XSS攻击?

XSS攻击全称为跨站脚本,XSS的 重点在于脚本执行,而不是跨站。这是一种将任意JavaScript代码插到其他web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能,在HTML页面里嵌入恶意代码。当用户浏览器页面时,这些潜入在HTML中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的。XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。

二、XSS产生的原因

是由于web应用程序对用户的输入和输出过滤不足产生的,导致脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危险。

三、常用的XSS攻击手段和目的

  1. 盗用cookie,获取敏感信息。
  2. 利用植入Flash,通过cross domain权限设置进一步获取更高权限。
  3. 利用iframe、frame、等方法,以用户的身份执行一些管理动作。
  4. 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作。
  5. 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDOS攻击的效果。

四、XSS攻击流程

五、预防措施

输入检查:对输入进行过滤,不允许可能导致XSS攻击的字符输入,制定白名单,输入检查特殊字符。

输出检查:在用户输内容中使用标签。

HTTPOnly: HttpOnly是包含在http返回头Set-Cookie里面的一个附加的flag,所以它是后端服务器对cookie设置的一个附加的属性,在生成cookie时使用HttpOnly标志有助于减轻客户端脚本访问受保护cookie的风险.通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。

六、类型

pikachu之XSS分类、场景(钓鱼、盲打、过滤)_Moriia---的博客-CSDN博客

七、攻击场景

pikachu之XSS分类、场景(钓鱼、盲打、过滤)_Moriia---的博客-CSDN博客

八、XSS绕过常用方法

  1. 前端限制绕过,直接抓包重放,或者修改html前端代码。
  2. 大小写绕过:HTML对大小写不敏感,可以大小写混用
  3. 双写绕过:有些情况的规则会将黑名单标签替换为空,可以利用这一点构造标签

例如:<script>改为<scr<script>ipt>

同理某些注释符在规则中也会替换为空,这时候可以利用它构造payload

例如:<script>改为<scr<!---test--->ipt>

4、开口标签:在某些特殊环境,由于html代码补全机制,可以故意不闭合标签绕过黑名单 检测例如:<script>改为<script

5、使用注释进行干扰:<scri<!--test-->pt>alert(“1”)</script>

6、编码:后台过滤了特殊字符,比如<script>标签,但该标签可以被编码,后台不一定会过滤,。当浏览器对该编码进行识别时,会翻译成正常的标签,从而执行。

九、跨站脚本漏洞测试流程

  1. 在目标站点找到输入点,如查询接口、留言板等。
  2. 输入一组“特殊字符+唯一识别字符”,点击提交,查看返回源码,是否有做出对应处理。如果字符没有被处理或者过滤,就说明存在XSS漏洞
  3. 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合)
  4. 提交构造的脚本代码以及各种绕过姿势,看是否可以执行成功,如果执行成功说明存在xss漏洞。
  1. 一般查询接口容易出现反射性xss,留言板容易出现存储型XSS
  2. 由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行
  3. 通过变化不同的SCRIPT,尝试绕过后台的过滤机制。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moriia---

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值