第一关 (无过滤绕过)
第一关中,我们看到一个正常页面,通过对URL的解读我们可以发现我们传递的值为username
我们直接使用script标签尝试。
http://5166c8e9-70dc-4685-9af5-66d6dc3c5fef.node4.buuoj.cn:81/level1?username=<script>alert(1)</script>
很简单的就注入成功了。
第二关(符号过滤)
第二关传递值并没有变化,我们继续尝试使用第一关的语句,发现压根就没有回显。
我们查看网页源码。
我们很明显的发现,这个网页通过escape函数对我们得传入值username做了一个过滤。
escape函数
在javascript中,escape用于编码字符串中的某些特殊字符,例如:
但是以下字符除外: * @ - _ + . /
所以对于这一题,我们大部分的标签就都不能使用了。
我们使用下面这个方