第十二关:Stored Cross Site Scripting (XSS)(存储型xss)
low
这一关没有任何防护,直接输入弹窗代码
弹窗成功
medium
先试试上面的代码看看,有没有什么防护
发现我们的script标签不见了,应该是被过滤掉了
查看源码,addslashes() 函数返回在预定义的字符前添加反斜杠的字符串,strip_tags()函数把message中的html标签去掉了
name中也把script标签替换成空了
但是仔细看,我们也能钻空子,message框不能用标签了,我们就用name框,但是name框也被过滤了script标签,但是我们还可以用别的标签,比如img标签,不过我们这里可以直接大小写混写绕过过滤,name框输入长度有限制,修改一下前端代码即可
high
name框的防御加强了,把script标签全部过滤掉,那我们就直接换个标签
我们用img标签
img标签是图片标签,但是我们不用上传图片,点击那个微缩图,即可弹窗
impossible
两个都用到了stripslashes() 函数:删除反斜杠
和htmlspecialchars() 函数:把预定义的字符转换为 HTML 实体。