目录
我们首先进行测试,发现不行

查看代码,可以看见我们上传的代码被包含在双引号里面

我们尝试绕过双引号 :"><" ,成功了,可以看见双引号被我们闭合了


我们首先尝试level2的绕过方法,果然双引号被限制了,

换成单引号试试呢,成功了


成功的原因:我们查看源码,发现在双引号前面有一个单引号进行闭合操作,且没有对单引号进行编码。所以我们可以使用单引号进行闭合

我们还是先用测试一下

可以看出这个页面过滤了尖括号,那我们换一个不用尖括号的onclik测试


测试成功
我们先用aaa" οnclick="alert(1) 和 测试,可以看出这次是将onclick/script函数加上下划线,使其失效


那我们再测试一下尖括号是否过滤,很明显尖括号没有进行过滤

那我们可以尝试换一个不常用的函数进行测试页面是否过滤
如:aa"> bbb


为什么这个JavaScript没有被过滤呢,我们需要查看一下源码

原来,源码中过滤script是带上了前面的尖括号,然而JavaScript中script前没有尖括号,所以不符合条件。没有过滤成功,一般使用正则表达式做过滤限制更好。
先使用aaa" οnclick="alert(1) 和 测试该页面的规则

可以看出依旧是使用下划线使函数失效,我们继续查看尖括号是否过滤

尖括号没有过滤,我们继续使用a标签尝试绕过

虽然JavaScript没有过滤但是href被过滤了,那怎么办了,我们再试一下大小写是否可以绕过
如:aaa" ONCLICK="alter(1),绕过成功


通过前面几题,我们可以猜到前面的方法应该都不行,我们先试一下aaa" οnclick="alert(1)

可以看出,这个页面去掉了on使其函数失效,这时我们可以尝试双写的方式绕过aaa" oonnclick="alert(1),成功了


我们先测试一下aaa" οnclick="alert(1),发现被过滤了

查看源码可以知道这个过滤了很多可以使用的标签,我们用编码测试一下

我们将javascript:alert(1)进行实体编码后提交,绕过成功了


这个网页需要填含有http://的网址,我们使用百度网页链接测试可以成功,我们还是测试一下是否可以实体编码:javascript:alert(1)//http://,其中在http://前面的//是用于注释掉后面的http://
编码后:javascript:alert(1)//http://
成功了:


首先可以看网页上的代码:

可以看出我们的输入框被隐藏了,我们可以尝试着将type的属性改变一下:keyword=abc&t_link=bcd&T_history=cde&t_sort=def" type="text"

我们将一个输入框显示出来后就可以在后面加上点击事件了:
keyword=abc&t_link=bcd&t_history=cde&t_sort=def" type="text" οnclick="alert(1)

我们首先查看此关卡的限制,可以得到可以提交t_sort的数据被限制了,所以我们尝试使用HTTP_REFERER这个进行绕过
referer:说明了从哪个页面访问的服务

我们首先在referer中提交:bbb" type="text" οnclick="alert(1)
成功了

查看源码,可以发现这个关卡和上一个相似

我们选择在user_agent上提交测试:bbb" type="text" οnclick="alert(1)


查看源码,可以看出此关卡传输cookie中设置了user

所以我们在上传时需要加上user=
user=callme bbb" type="text" οnclick="alert(1)

成功了

