- 闭合html属性,插入新的属性
- 闭合input标签,插入新的script标签
"/>
2.2.输出在CSS代码中
- 闭合css代码中的属性,插入新的属性
2.3.输出在JavsScript中
- 闭合javasript代码,插入攻击代码
六、xss获取cookie
1.常用函数
document.write()
document.cookie
2.常用payload
3.将cookie反馈给攻击者
DVMA:XSS存储型
备注:atob-base64解码
btoa-base64编码
攻击机启动nc 监听,即可窃取其他用户的cookie
七、XSS防护和绕过方法
1.XSS防护
特定标签过滤
事件过滤
敏感关键字过滤
2.XSS绕过
2.1.特定标签过滤
script和iframe等危险标签过滤
1)采用插入过滤范围外的标签(例如html新加入的<source οnerrοr="alert(1)"s>)
2)如果输出点在HTML标签属性中或JS代码中,只需简单闭合、拼接属性或JS代码即可,无需引入新标签。
2.2.事件过滤
2.3.敏感关键字(字符)过滤
针对敏感变量或函数进行过滤,如cookie,eval,alert等,针对敏感符号过滤,如括号、空格、小数点等
通过字符串拼接、编码解码等方式进行绕过
- 字符串拼接与混淆
Window’alert’
Window’al’+‘ert’
windowatob(“YWxl”+“cnQ=”)
- 编码解码
a)HTML进制编码:以&开头,以分号结尾
命令实体:<这个符号的编码是<
字符编码:<这个符号的编码是<或<
b)CSS进制编码:兼容html,十进制或十六进制
c)JS进制编码:e这个字符八进制\145;十六进制\x65或\u0065
d)url编码:%61
e)JSFuck编码:以6个!+字符来编写js脚本
编码工具:http://evilcos.me