目录
一、XSS漏洞
1、xss漏洞原理与危害
2、xss的类型?区别?修复?
3、常见使用的标签,payload构造
一、XSS漏洞
1、xss漏洞原理与危害
原理:xss就是跨站脚本攻击漏洞,也可以理解为前端的代码注入,通过利用一些方法注入恶意的js代码到网页,使用户加载并执行攻击者恶意注入的js语句。
危害:xss漏洞可以用来⽹络钓⻥,盗取各种⽤户账户。可以 窃取⽤户的cookie,获取⽤户隐私信息。还可以劫持⽤户会话,执⾏任意操作。
2、xss的类型?区别?修复?
反射型:通过提交url来构造攻击代码,用户输入的参数内容会直接回显在页面上。反射型xss攻击需要将url链接发送给受害者,受害者单击之后才会触发。反射型的xss是一种非持久型的xss。
存储型:存储型XSS是将攻击脚本永远嵌⼊某⼀个⻚⾯中,当⽤户访问的时候就会触发执⾏,从⽽⽤户受到相关的攻击。存储型攻击主要发⽣在服务端,所有⽤户访问了该⻚⾯都将受到相应的攻击,是一种持久型的 XSS。
DOM型:(因为客户端的脚本程序可以通过DOM动态地检查和修改⻚⾯内容。程序执⾏不依赖于服务器端的数据,从客 户端获得DOM中的数据并在本地执⾏。浏览器⽤户可以操纵DOM中的⼀些对象,例如URL、location等。DOM型的XSS漏洞是不需要与服务器端交互,它只发⽣在客户端处理数据的阶段。)
存储型与反射型的区别:存储型xss需要攻击者将构造的代码传入服务器,存储在服务器端。当用户访问到该链接时就会触发攻击。而反射性xss是将payload直接写在url中,将链接要发给受害者点击。相比之下存储型xss的危害型更高,更难察觉。
所以⽤户在客户端输⼊的数据如果包含了恶意的js脚本,⽽这些脚本没有经过适当的过滤,应⽤程序就会受到基于DOM的XSS攻 击。
这三种类型的区别:
对于反射型XSS来说,用户输入什么网站返回什么。这个交互过程不会进入数据库,而日从浏览器与服务器交互的出入流量可以互相印证。漏洞成型点在服务器端代码解析引擎。
对于在储型XSS来说,用户提交的数据会先存储进入数据库,以后每次请求,即使不带攻击Payload,只要查询到数据库中被污染的内容,这些内容回显在页面之上就会触发,漏洞成型点在于数据库。
对于DOM型XSS,有可能发送的请求一切正常,服务器返回的内容也一切正常,但是在JavaScript文件解析用户的输入时触发了XSS。
xss的修复:对内容进行过滤。可以分为⽩名单过滤和⿊名单过滤、⽩名单过滤通过允许放⾏的内容进⾏过滤、⿊名单过滤是对相关关键字进⾏拦截。除此之外,还可以在服务端中设置会话cookie的HTTP only属性,这样客户端JS脚本就不能获取cookie信息。然后还可以对⽤户输⼊的内容进⾏明确类型、对输⼊的内容⻓度进⾏控制这些措施来预防xss漏洞、。
3、常见使用的标签,payload构造
通常验证xss能否执行成功就是执行一段弹出对话框的代码。(使用alert方法或者document.cookie来获取cookie)