• web安全——跨站脚本攻击(XSS)


    web安全——跨站脚本攻击(XSS)

    什么是XSS

    XSS全称:跨站脚本(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS;攻击者会向web页面(input表单、URL、留言版等位置)插入恶意JavaScript代码,导致管理员/用户访问时触发,从而达到攻击者的目的。

    为什么会发生XSS

    1. 网站对用户的输入过滤不足,返回给用户的展示结果过滤不足。
    2. 网站的链接地址未经过过滤

    XSS作用:

    1. 获取用户的cookie或其他有用的信息,利用平台负责接收并保存这些信息。
    2. 钓鱼
    3. 网站挂马
    4. 利用网站重定向
    5. 修改网页内容
    6. XSS蠕虫

    XSS类型:

    1. 反射型
      攻击者通过input表单或URL向web页面中插入恶意的JavaScript代码,当web接收到攻击者恶意的JavaScript代码即会执行JavaScript代码。(一次性,经过后端,不经过数据库)

    2. 存储型XSS
      持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。(经过后端,经过数据库)

    3. DOM型
      不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom – xss是通过url传入参数去控制触发的。

    反射型 < DOM型 < 存储型

    XSS攻击

    1. 绕过XSS-Filter,利用<>标签注入Html/JavaScript代码;
    2. 利用HTML标签的属性值进行xss攻击。例如:<img src="javascript:alert(‘xss’)"/>;
    3. 空格、回车和Tab。如果XSS Filter仅仅将敏感的输入字符列入黑名单,比如javascript,用户可以利用空格、回车和Tab键来绕过过滤,例如:<img src=“javas cript:alert(/xss/);”/>;
    4. 利用事件来执行跨站脚本。例如:<img src="#" “alert(1)"/>,当src错误的视乎就会执行onerror事件;
    5. 利用CSS跨站。例如:Body {backgrund-image: url(“javascript:alert(‘xss’)”)};
    6. 扰乱过滤规则。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>;
    7. 利用字符编码,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好地隐藏Shellcode;(JS支持unicode、eacapes、十六进制、十进制等编码形式)
    8. 拆分跨站法,将xss攻击的代码拆分开来,适用于应用程序没有过滤 XSS关键字符(如<、>)却对输入字符长度有限制的情况下;

    例如:

    <script>alert('hack')</script>
    <script>confirm('hack')</script>
    <script>prompt('hack')</script>
    <img src=x onerror=alert(1)>
    过滤script,可以用大小写绕过,或者使用其他标签<img>
    

    修复XSS漏洞

    1. 输入与输出(对输入过滤,对输出编码)
    2. HttpOnly,HttpOnly是微软公司的Internet Explorer 6 SP1引入的一项新特性。这个特性为Cookie提供了一个新的属性,用以阻止客户端脚本访问Cookie。
  • 相关阅读:
    黑马程序员系列第十篇 异常
    黑马程序员系列第八篇 IO(2)
    黑马程序员系列第九篇 类加载器
    黑马程序员系列第六篇 面向对象基础
    黑马程序员系列第七篇 IO(1)
    黑马程序员系列第五篇 集合(2)
    黑马程序员系列第四篇 集合(1)
    黑马程序员系列第三篇 反射
    vue 自定义指令集合
    计算图片缩放比例 使图片不变形
  • 原文地址:https://www.cnblogs.com/bink1/p/12626845.html
Copyright © 2020-2023  润新知