一、更换JS引入方式
正常情况下,执行js代码有三种方法:
1、行间式
<div onclick="alert('yea...这样子可以执行JS哦')"></div>
<a href="javascript:alert('执行JS代码但不跳转');">点我</a>
<a href="javascript:void(0)" onclick="alert('点击执行JS代码');">再来点我啊</a>
2、外链式
<script src="../test.js"></script>
3、嵌入式
<script>
alert('js hello world!');//弹窗
</script>
在某些情况下,web应用对JavaScript的关键字做了过滤时,就可以通过更换引用方式来实现JS代码的执行。
二、通过事件引入JS代码
常用事件:
- onchange :当HTML 元素已被改变时执行JS
- onclick: 当用户点击了 HTML 元素时执行JS
- onmouseover: 当用户把鼠标移动到 HTML 元素上时执行JS
- onmouseout : 当用户把鼠标移开 HTML 元素时执行JS
- onkeydown: 当用户按下键盘按键时执行JS
- onload:当浏览器已经完成页面加载时执行JS
- onerror: 当执行错误时加载JS代码
通过事件执行JS代码是一个不错的选择,但是一些特殊事件往往会被过滤,所以还得加上其他方法绕过。
三、面对输入过滤时的绕过姿势
常用方法:
- 大小写绕过
- 双写绕过
- 使用编码:如HTML实体编码、URL编码、JS编码等
- 闭合HTML标绕过
- …