一、漏洞描述
xss跨站脚本攻击是黑客通过“html注入”篡改了网页,插入了js恶意脚本,前端渲染时进行恶意代码执行,从而控制用户浏览的一种攻击。经常出现在需要用户输入的地方,一旦对输入不进行处理,就会发生网页被篡改。
分为三类
反射型:经过后端,不经过数据库
存储型:经过后端,经过数据库
DOM型:不经过后端,是基于文档对象型的一种漏洞,dom-xss是通过url参数去控制触发的
xss靶场第七关服务器采用了替换恶意关键字的方式防御,可以双写绕过。
二、漏洞发现
直接看源码,服务器接受keyword变量的值,将script、on、src、data、href字符子串替换为空,然后将处理后的值传入input标签返回给客户端
str_replace()函数:将字符串中的指定字符替换为其他字符
可以使用双写绕过,原有的恶意语句为
"><script>alert('z')</script>
出现弹窗。通过服务器处理后变为”><>alert('z')</>这样的语句是无效的,因为将script替换为空
所以通过双写
"><scscriptript>alert('z')</scscriptript>
当服务器处理时则变为
"><script>alert('z')</script>
因为将中间的script替换为空,剩下的结合后又是script可以成功绕过。
三、漏洞利用
先输入">发现被替换
输入">alert('z')成功弹窗