美文网首页
《Web前端黑客技术解密》读书笔记(第七、八章)

《Web前端黑客技术解密》读书笔记(第七、八章)

作者: 艾特TT | 来源:发表于2016-11-22 00:11 被阅读156次

    本文地址:http://www.jianshu.com/p/511e137f6cf4

    第七章 漏洞利用

    偷取隐私数据

    Referer有时会泄露数据,比如当前url中存在隐私数据

    避免的方法:

    • 一是url中不放隐私的数据
    • 二是添加中间跳转页,这样跳出去后referer不会有隐私数据
    • 给link标签上添加 ref=noreferrer 属性,HTML5支持,所以有兼容性
    <a href='http://x.com' ref='noreferrer' >link</a>
    

    浏览器记住的明文密码

    参考这边文章:XSS Hack:获取浏览器记住的明文密码

    基于CSRF的攻击技术

    • 基于CSRF的SQL注入
    • 基于CSRF的命令执行(后台命令)
    • 基于CSRF的XSS攻击

    浏览器劫持技术

    浏览器劫持技术是指通过劫持用户点击链接,在打开新窗口的时候注入攻击者的JS代码,达到将XSS威胁延续到同域内的其他页面

    一些跨域操作技术

    IE res:协议跨域 P232

    CSS String Injection跨域,针对IE浏览器

    test.html

    <body>
      {}body{font-family:
        hello
      }
    </body>
    

    test2.html

    <style>
      @import url('http://x.com/text.html');
    </style>
    <script>
      setTimeout(function (){
        var t = document.body.currentStyle.fontFamily;
        alert(t);
      }, 2000);
    </script>
    

    浏览器特权区域风险

    比如浏览器插件等,可以与系统打交道,XSS进入到这个区域的过程,称为 Cross Zone ScriptingCross Context Scripting(简称XCS

    其他跨域经典

    • 利用UNC跨域,这里看一篇文章:《走向本地的邪恶之路》,主要是利用iframe嵌入file:///本地文件

    • mhtml协议跨域,这里推荐看这篇:《IE下MHTML协议带来的跨域危害》

    XSS Proxy 技术

    基于浏览器的远程控制

    • 基于script跨域请求
    • ajax请求
    • 服务端WebSocket推送消息
    • postMessage 方式推送指令

    真实案例剖析

    百度空间登陆DIV层钓鱼

    利用SRC中引号等特殊号没有过滤,注入脚本,模拟官网登陆窗口,发送表单时拦截

    Gmail正常服务钓鱼

    人人网跨子域盗取MSN号

    依赖不同子域设置相同根域document.domain=renren.com,拦截所有link,通过js打开页面,并保留新页面的window引用,然后注入脚本,提交表单时获取用户名、密码

    跨站获取更高权限

    • 案例:ECSHOP诱导管理员点击链接,添加超级管理员账号
    • 提权shell

    大规模XSS攻击思想

    借助搜索引擎,得到某一类CMS等网站列表,通过添加友链等方式等待管理员激活

    第八章 HTML5 安全

    新标签和新属性绕过黑名单策略

    新元素突破黑名单

    • 标签
    <video onerror=javascript:alert(1)></video>
    <audio onerror=javascript:alert(1)></audio>
    <video><source onerror=javascript:alert(1)></source></video>
    <audio><source onerror=javascript:alert(1)></source></audio>
    <video onloadedmetadata="javascript:alert(2)" ondurationchange="javascript:alert(3)" ontimeupdate="javascript:alert(4)" onerror="javascript:alert(1)"></video>
    <video onerror=javascript:alert(1)></video>
    
    • 新属性,可利用的属性有formactiononformchangeonforminputautofocus

    History API新方法

    pushState()replaceState()

    短地址+History新方法

    • 通过短地址可以做到
    <!--前-->
    http://a.com/id=<script>alert(1)</script>
    <!--后-->
    http://bit.ly/aRsd8F
    
    • 点击之后在浏览器中不过就会还原,于是在借助History API即可
    http://a.com/id=<script>history.pushState(1);alert(1)</script>
    <!--或者-->
    http://a.com/id=<script>history.replaceState(1);alert(1)</script>
    

    HTML5下的僵尸网络

    Web Worker

    new 之后会新建一个线程在主页面后台

    <script>
      var worker = new Worker('test.js');
      worker.postMessage('hello');
      worker.onmessage = function(evt){
        console.log(evt.data);
      }
    </script>
    

    CORS向任意网站发送跨域请求

    地理位置暴露信息

    附原书购买地址: http://item.jd.com/11181832.html

    相关文章

      网友评论

          本文标题:《Web前端黑客技术解密》读书笔记(第七、八章)

          本文链接:https://www.haomeiwen.com/subject/skkppttx.html