XSS Payload深入分析

本文深入分析了XSS攻击的Payload,包括Body、Style、Marquee和Media标签的利用,以及如何利用错误输入过滤机制和黑名单代码样式的绕过策略。讨论了在事件处理程序如onerror、onbounce、onstart等中插入XSS Payload,以及如何通过替换和删除机制来规避安全过滤。
摘要由CSDN通过智能技术生成

众所周知,一种调用JavaScript的方法就是在元素类型上使用事件处理器(Event Handler),通常的一种方法类似:

<img src=x onerror=alert(‘xss’) />

这是一种使用无效src属性来触发 onerror 事件处理器(onerror event handler)的方法,当然,其中包含了一个alert跳出框的xss payload,如下alert(1):

由于过度使用img标签和onerror事件处理器,它们经常被列入XSS过滤黑名单,但除此之外还有其它形式的XSS攻击向量。

虽然所有可能的XSS攻击向量标签列表无法一时列出,但其中几种非常有必要在此谈谈。

Body 标签

由于这种攻击方法向量,在给定页面中只有一个body标签,有些人可能认为它不起作用,但实际上,所有浏览器都会把它当事件处理器(Event Handler)来执行。在这里,可以在onpageshow事件中用提交body元素的方法,形成XSS Payload,当其中的body元素被解析后就会触发Payload。示例如下:

<body onpageshow=alert(1)>

Style 标签

尽管onload事件总会被识别为危险动作,但另外来说,它也可以和style标签组合来用,虽然这种场景并不多见。示例如下:

<style onload=alert(1) />

Marquee 标签

Marquee 标签除了在web开发中有标签内容回滚作用之外,它还支持一系列的事件处理程序,因此可以用它来实现XSS Payload触发。Marquee支持的一系列事件处理程序如下:

onbounce事件:是在<marquee>标签中的内容滚动到上下或左右边界时触发的事件处理程序,该事件只有在<marquee>标签的behavior属性设为alternate时才有效;

onfinish事件:当 marquee 完成 loop 属性设置的值时触发。它只能在 loop 属性设置为大于 0 的某个数字时触发;

onstart事件: 当 marquee 标签内容开始滚动时触发。

结合此,加入XSS Payload的示例如下:

<marquee behavior="alternate" onstart=alert(1)>hack the planet</marquee>

<marquee loop="1" onfinish=alert(1)>hack the planet</marquee>

<marquee onstart=alert(1)>hack the planet</marquee>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值