XSS(跨域脚本攻击)

1、xss 概念

XSS 全称(Cross Site Scripting)跨域脚本攻击,是最常见的Web应用程序安全漏洞之一,
XSS是指攻击者在网页中嵌入客户端脚本,通常是JavaScript编写的危险代码,当用户使用浏览器网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的

HTTP方式进行访问 — HTTPS方式访问(xss攻击主要是针对HTTPS访问模式)插入js恶意代码 截取你的cookie 保留下来 替换掉攻击者访问网址的cookie

2、XSS(跨站脚本攻击产生的原因)

程序对输入和输出的控制不够严格 ,导致js恶意脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害
简单的页面测试: '">

3、跨域脚本攻击造成的危害

(1)劫持用户的cookie 是在常见的跨域攻击形式,通过在网页中写入并执行脚本文件(多数情况下是js脚本代码),劫持用户历览器,将用户使用的sessionID信息发送至攻击者控制的网站/服务器中
(2)操作网页中的DOM树结构和内容,在网页中通过js脚本,生成虚假页面,欺骗用户执行操作,而用户输入的内容都会被发送到攻击者的服务器上
(3)挂马(水坑攻击)
(4)有局限性的键盘记录

4、跨域脚本攻击分类介绍

(1)反射型XSS或不持久型XSS(中危漏洞)

      交互的数据一般不会被存在数据库里面,只是简单的把用户输入的数据反射给浏览器,一次性的,所见即所得
      攻击的过程必须让用户访问指定的url才能生效,并且访问过程产生的数据不会对服务端产生影响(数据的查询)
      反射型XSS(get)
      反射型XSS(post)

(2)存储型XSS/持久型XSS(高危漏洞)

      交互的数据会被存在数据库里面,永久存储,具有很强的稳定性
      eg:留言板(一写数据的提交)
      解决:

(3)DOM XSS(低危漏洞/中危漏洞)

   不与后台服务产生数据交互,通过前端的dom节点形成的XSS漏洞

5、跨站脚本攻击存在的地方

(1)HTML context 在HTML代码中包含相应的xss漏洞代码信息

    

Hello

(2) Attribute Context 在对象属性代码中包含相应xss漏洞代码信息

    {{Untruted Data}}    在属性信息中  
      在value值中

(3)URL Context 在URL 地址内容中包含相应xss漏洞代码信息: