这一关提示:
如果实在做不出来了,可能是思路被局限,可以参考一下这里:
Principle: 对于黑盒XSS,首先要知道在哪里过滤的,过滤了什么,如何过滤的,什么情况下触发过滤 即Where/What/How/When 之后你便可以建立自己的Fuzz Testing Libs
接下来便分享下我的思路
我们先输入
javascript:alert(1)
结果可想而知,肯定是被屏蔽(此处屏蔽指弹出XSS警告)了
然后开始从细节开始测试
测试过程不好截图就不截了
直接说下结果吧
<>括号过滤情况为:
<被过滤(此处过滤指被删除) >正常
但是当两个符号一起出现时会被全部删除,包括中间的内容
这里就是个可以利用的绕过方式了
尝试绕过
javasc<c>ript:alert(1)
结果却被屏蔽,有以下两种情况:
- 后端代码是先匹配删除掉括号再进行的关键词查找
- alter被屏蔽
先测试下第二个情况
javasc<c>ript:al<c>ert(1)
页面显示正常
查看源代码
可以看到正常插入进去了,我们点一下试试
可以看到正常执行了弹窗,那么构建payload
javasc<c>ript:al<c>ert(HackingLab)
过关!key就不放出来了
这里继续试试其他的
空格 的情况有点特殊,应该是正则表达但是也是可以绕过的
只要空格前面有字符就会被屏蔽
那么我们把空格放在第一个
test
正常通过
那么试试是不是屏蔽了所有空格
test
事实证明只会屏蔽第一个空格
那么构建如下payload
' onmouseover=al<c>ert(HackingLab)>
成功弹窗!
本文章到此结束
第一次发,有点小紧张啊