2019-11-22:xss绕过笔记
阅读原文时间:2023年09月09日阅读:1

xss变形
大小写混合,sCRipt
重复写,scrscriptipt
通过某些标签来src属性,构造pyload,src找不到数据源的时候内部会出错,此时使用onerror触发,或iframe标签,

在标签内部如何执行XSS语句
闭合属性,闭合标签,无法闭合可能进行了htmlencode编码(htmlspecialchars函数)
利用事件
特殊属性src/href/action
javascript伪协议
data伪协议

html实体编码
注意在用的时候需要注意输入到浏览器,&在url中,是参数分隔符,#在url中,#会忽略后面的内容,所以需要把&和# url编码。
 就会变成最终payload:

String.fromCharCode函数通过ascii码来获取字符串
eval函数计算某个字符串,并执行其中的的 JavaScript 代码。


十六进制编码

Unicode 编码
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
js unicode是以十六进制代码外加开头\u表示的字符串。即\unnnn
'\u54e6' -> "哦"

url编码
%3Cimg%20src%3Dx%20onerror%3Dalert(1)%3e

jsfuck