第一关
查看页面源代码:
发现没有对参数进行任何的过滤,所以直接进行script标签注入
<script>alert(pass)</script>
通过!
第二关
查看页面源代码:
发现进行了htmlspecialchars()函数处理,所以直接输入script标签是无法进行执行的
接下来我们寻找注入点,可以通过对已经存在的“”和<>进行闭合以达到执行我们所需要语句的目的。所以我们对keyword的value值进行闭合。
<input name = keyword value="">
通过。
第三关
、
查看网页源代码。
观察代码,与第二关方式相仿,在 keyword旁的value处进行闭合。不过在此处又进行了函数过滤。所以考虑事件驱动,此处为单引号闭合。
'οnfοcus=javascript=:alert(1)//
通过
第四关
点击搜索,F12打开控制台,发现payload的值传递给了keyword的value值,打开后台代码,
构造双引号闭合方式。我们进行注入。
payload:"οnfοcus=javascript:alert('1')>//
通过(截图就不放了)
第五关
尝试采用上关的方式试试:
onfocus发现转变为o_nfocus 后台对on进行了处理。我们选择进行构造script标签
payload:"><a href=javascript:alert('pass')>xss<a>//
通过!