一个简单的XSS-Game
Level 1
这第一题只是简单的xss而已,没做过滤什么的。
alert(1)
Level 2
查看源码发现,也没做过滤。这是个储存型XSS,看到默认发的那篇POST能够使用HTML标签,那么就在此之上稍微加工一下即可。
xxxxx
Level 3
这里稍微看下源码,可以发现
html += "";
在这句里,num
参数未经过过滤就直接带入生成HTML语句。那么我们可以构造
https://xss-game.appspot.com/level3/frame#'/>alert(1)
补全img
标签,再加入script脚本即可。
Level 4
这里通过源代码可以发现,在输入的时候对输入数据进行了一个HTML实体化的转义,因此``等符号被转义成HTML实体,也就不能运行。
hint说输入一个'
单引号。
可以在源代码中发现这个单引号是未被转义可用的。那么我们就可以搞事情了~
(当浏览器解析标签属性的时候,会先对值中的HTML实体编码进行解码)
3'),alert('1
Level 5
一开始没什么头绪,看了源码发现email
参数完全没用。也就是说,我们不能在输入数据这段搞事。
后来发现在signup
页面里,那个Next按钮的跳转链接是我们可以控制的。
一个神奇的Javascript运行方式--URL中的JavaScript
那么payload就来了
signup?next=javascript:alert("1")
Level 6
这一题用的是跨站脚本。我们发现在URL的#之后的地址的JS脚本会被加载,那么就在自己服务器上写个JS脚本引用即可。
当然,这里用JS过滤了下:
if (url.match(/^https?:\/\//))
这个过滤我就不想说什么了。。http改成大写即可。
文章评论