一、漏洞描述
xss跨站脚本攻击是黑客通过“html注入”篡改了网页,插入了js恶意脚本,前端渲染时进行恶意代码执行,从而控制用户浏览的一种攻击。经常出现在需要用户输入的地方,一旦对输入不进行处理,就会发生网页被篡改。
分为三类
反射型:经过后端,不经过数据库
存储型:经过后端,经过数据库
DOM型:不经过后端,是基于文档对象型的一种漏洞,dom-xss是通过url参数去控制触发的
在xss靶场第六关服务器采用了替换恶意关键字的方式防御,但是为对输入进行小写转化,可采用大小写绕过方式插入恶意脚本,在js中严格区分大小写,在html标签中不区分大小写。
二、漏洞发现
直接看靶场源码,服务端get方式接受keyword参数,将
str_replace()函数:将字符串中的指定字符替换为其他字符
在h2标签里面将字符进行了实体转换这样恶意代码特殊字符不是标签形式存在,按照文本输出,就没有用。但是在input标签中未处理变量,可利用。
htmlspecialchars()函数:把预定义的字符转换为html实体
三、漏洞利用
先输入一个验证语句
"><script>alert('z')</script>//警告消息框,有一个确定键
前面">是用来闭合input标签的,发现被替换
输入
"><sCript>alert('z')</sCript>//将c大写
大写语句让服务器无法匹配,成功弹窗