fa
练习网站:http://xss.tesla-space.com/
第一关:
发现url中的name参数传递的内容会输出在网页
![](https://img.haomeiwen.com/i15384170/2db7a7ece12c5845.png)
发现没有过滤<>
直接输入Payload:<img/src=x onerror=alert(1)></img>
![](https://img.haomeiwen.com/i15384170/2c19fd2c1c3ddf29.png)
第二关:
发现输入参数输出在input标签中的value属性中
![](https://img.haomeiwen.com/i15384170/c4cdeb5885d1504f.png)
使用双引号闭合 构造payload
payload: " onclick=alert(1)//
![](https://img.haomeiwen.com/i15384170/292ee4cc72dcd986.png)
第三关:
发现上面的字段输出在两处
![](https://img.haomeiwen.com/i15384170/8a6a631346e442b8.png)
看看过滤了哪些关键字:
![](https://img.haomeiwen.com/i15384170/ebd9d6bd63cd48c9.png)
右键查看html源代码
发现value实际上是使用单引号的 这时可以构造单引号闭合
![](https://img.haomeiwen.com/i15384170/90de357cdb2af44e.png)
payload: ' onclick=alert(1)//
![](https://img.haomeiwen.com/i15384170/0fce0b27c38aeef0.png)
第四关
发现双引号未实体编码
![](https://img.haomeiwen.com/i15384170/fa7b7d2c9a731488.png)
输入payload:" onclick=alert(1)//
![](https://img.haomeiwen.com/i15384170/403d7887071a47fa.png)
第五关
发现依旧是"未转义
![](https://img.haomeiwen.com/i15384170/3c8d8557e2c27501.png)
但是发现on被转义为o_n
这就意味着原本的javascript事件将无法使用
![](https://img.haomeiwen.com/i15384170/75f088fc052a17ae.png)
使用JavaScript伪协议可以绕过
payload: 123"><a href=javascript:alert(1);>123</a>
![](https://img.haomeiwen.com/i15384170/51ca66a372d29913.png)
网友评论