此文为了仅为了帮助自己记录学习网络安全时的笔记。小白一枚,如有错误还望大佬指正。
XSS漏洞
简介
XSS漏洞即跨站脚本攻击(Cross Site Scripting),是指攻击者往web页面中国插入恶意的script代码,当用户浏览该页面时,嵌入web页面中的script代码就会被执行,从而达到恶意攻击用户的目的。
原因
XSS漏洞产生原因:对用户的输入未进行有效的过滤,编码,输出到网页中,导致注入并执行JavaScript代码。
常见位置
根据其产生的原因我们可以知道时未对用户的输入进行有效的过滤,所以XSS只会出现在对用户输入进行输出的地方,包括但不限于:留言板,搜索框,用户昵称,个人简介,复选框等。
分类
xss分为反射型,存储型以及DOM型。
反射型
直接输入参数,返回页面中包含输入的参数,但是数据不保留在服务器的数据库中。
反射性 XSS 只执行一次,且需要用户触发
存储型
直接输入参数,返回页面中包含参数,并且用户提交的数据存储到数据库中。
DOM型
使用javascript进行前端渲染时导致的xss。
反射型xss与存储型xss的判断依据:payload是否存储在数据库中。
xss只会出现在对用户输入进行输出的地方。
危害
包括但不限于:
盗取各类用户权限(cookie)
xss蠕虫
网站劫持(钓鱼,刷流量,篡改页面,挂马)
内网扫描
防御
防御xss 的核心思想:将用户输入看作文本,使浏览器无法将输出内容看作代码;
对输入和url进行编码过滤(将所有的英文符号进行转义,转义为空或者html实体编码)
在输入端写一个xss filter
对输出进行编码
使用httpOnly
httpOnly是cookie中的标识,他的作用是阻止JavaScript读写存在该标识的cookie
绕过手法
转义字符
单引号过滤
支持onerror属性的标签 img object style
大小写混写
img src属性