目录
一、测试环境
1、系统环境
2、使用工具/软件
二、测试目的
三、操作过程
1、注入点寻找
2、使用hackbar进行payload测试
3、绕过结果
四、源代码分析
五、结论
一、测试环境
1、系统环境
渗透机:本机(127.0.0.1)
靶 机:本机(127.0.0.1)
2、使用工具/软件
火狐浏览器的hackbar插件,版本:2.3.1
测试网址:http://127.0.0.1/xss-labs-master/level7.php
二、测试目的
实现基于get型的xss攻击,构造payload绕过检测。
三、操作过程
1、注入点寻找
注入点在输入框
尝试注入<script>alert(2)</script>,发现script被过滤掉了,标签符还在
查看源代码发现,script是完全过滤掉了,依然是在value值中
2、使用hackbar进行payload测试
被过滤可以尝试大小写绕过和双写绕过
尝试大小写绕过”><ScriPt>alert(2)</ScriPt>,不成功
查看源代码,发现和刚刚一样script标签被过滤了
尝试双写script进行绕过
"><scrscriptipt>alert(2)</scrscriptipt>
成功绕过
3、绕过结果
使用双写绕过成功
"><scrscriptipt>alert(2)</scrscriptipt>
四、源代码分析
与上一关类似,这关加上了强制转化为小写,然后将script、on、src、data、href等字符替换为空,只替换了script整个单词。替换为空就会有双写绕过的漏洞。因为只过滤了整个单词,如:scrscriptipt,过滤掉了中间的script,前后字符组合又是一个script标签。可以进行绕过
注入点在value,这里没有进行转义过滤
五、结论
过滤script标签,有很多种绕过方法,例如大小写绕过、双写绕过、加空格符、编码等等,过滤不严谨就会导致有绕过的风险。