XXS-labs
level1
根据信息,我们看到他显示欢迎用户test,然后test我们可以注意到,在url中被赋值给了name变量
那么我们猜测,这里的赋值能影响到网页,我们就在这里进行xxs注入
<script>alert('1')</script>
弹出过关信息,成功过关。
level2
这关发现出现了一个输入框,这里我们直接尝试使用上一关的注入代码
<script>alert('1')</script>
发现不行
那我们右键-查看网页源码,进行代码审计
很明显,我们可以看到,我们的语句中的<和>被过滤成了<;(猜测是使用了 htmlspecialchars() 函数,将这个过滤为一个实体了),所以导致我们的语句失败,那我们就要想办法绕过他
如果学过sql注入,会感觉很相似。
"><script>alert('1')</script>//
这里是利用">来闭合前方的<"
后面的//是用来注释掉后方的">
这样就使中间的语句,成为了一个单独的语句,可以被执行到。
level3
使用第二关的代码,发现还是被过滤掉了
"><script>alert('1')</script>//
那我们就使用js事件的方式进行绕过