xss漏洞挖掘总结
第一步:输入正常字符串,f12观察响应,被插入则有可能存在注入
第二步:加上铭感字符,比如script标签,再次观察,如果被过滤,而没有被实体化,哪表明可以绕过。
第三步:绕过首先是猜测出没有被实体化的参数,然后则可以使用,大小写绕过,双写绕过,以及利用老版的ie浏览器,以及js伪协议,如果还是无法绕过。
第四步:使用xss编码,作用:浏览器对提交的编码进行自解析,执行。
以下图总结:进行绕过
注意:此图在绕过中非常重要,必须牢记于心
总结:现在的安全防护做的还是比较好,所以大部分绕过需要使用xss编码绕过,所以一定要学会编码绕过,否则很多无法绕过waf,最后一定要学会使用工具进行批量尝试xss,因为工具可以更加快速。节省时间
11-16通关
11.绕过替换script和on事件的xss
输入正常字符
观察响应
输入script标签
可以看到script标签被转义
尝试内联在input标签,可以看到on也被转义
尝试harf超链接+伪协议
可以看到一样插入进去了,一样被转义
使用html编码代替空格,绕过被过滤的字符
	:空格
可以看到成功绕过,并插入js代码
成功弹窗
12.利用IE特性,绕过xss过滤
输入正常字符,可以看到被插入
尝试html标签,插入
可以看到 " 被过滤掉
打开ie软件
创建各种版本
使用`` 代替 ‘’
成功绕过
13.利用css特性绕过xss
打开既可以看到,css被插入
尝试css+伪协议插入
成功插入
成功弹窗
14.利用css特性绕过
尝试onclick标签
可以看到被当做字符串
所以无法生效
使用expression函数加js,尝试触发xss
xss:expres/**/sion(if(!window.x){alert(document.domain);window.x=1;})
解释一下这条这语句,
防止expression函数被过滤,使用/**/绕过
如果winow 全局变量x没有定义,弹框domain,最后给x定义一个值1,。
注:如果不定义,则会无限循环。
15.16进制绕过过滤触发xss
尝试onclick标签
可以看到被当做字符串
无法利用
尝试script标签,一样被当字符串
并且往下翻的话可以看到,<>被过滤掉
尝试使用16进制(进制编码)绕过
输入<
转化为了3c
输入>
转换为了3e
直接script标签
尝试使用16进制绕过
在测试过程中,我们发现\会被转义掉,因此
我们输入两个\
输入两个\
成功弹窗
最后在来看一下,确实<被过滤掉
16.unicode绕过过滤触发xss
尝试script标签
可以看到<被过滤掉
尝试刚刚的方法
可以看到没有用
尝试unicode编码(进制编码)
成功转义为<>,说明可以绕过
看看概念
将其替换
成功弹窗