zoukankan      html  css  js  c++  java
  • 白帽子讲web安全读后感

    又是厚厚的一本书,为了不弄虚做假,只得变更计划,这一次调整为读前三章,安全世界观,浏览器安全和xss。其它待用到时再专门深入学习。

    吴翰清是本书作者,icon是一个刺字,圈内人称道哥。曾供职于阿里,后创业,最后回归阿里。更多可以参考这里:

    https://www.secpulse.com/archives/65276.html

    安全世界观 

    所有术的层面最后都回归到道的层面,所以开篇的章节,作者从道讲起。

    这一部分需要思考的的第一个问题是:我们为什么要研究web安全?

    我心里在想,和这个类似,区块链安全需要我们关注吗,为什么?

    第二个问题:白帽子的工作和黑帽子有何不同?我们要像黑帽子学习什么?

    第三个问题:安全的本质是什么?

    第四个问题:有没有一劳永逸的安全方案?

    第五个问题:请谈一谈你对安全三要素的理解。

    第六个问题:请谈一谈安全评估做什么?怎么做?

    第七个问题:白帽子在设计安全方案时,有哪些原则可以参考?它们分别应对或解决哪一方面的问题。

    每一个问题都够写一篇小论文了。

    浏览器安全

    同源策略

    同源策略限制来自不同源的document或脚本对当前document或脚本进行修改。

    影响源的因素有协议、端口、域名。

    script、img、iframe标签却可以跨域加载资源,实际上它们由浏览器发起了一次get请求,JavaScript不同于XMLhttprequest,不能读写返回的内容。

    除了DOM,cookie,xmlhttprequest受同源策略限制,一些浏览器加载的第三方插件也有各自的同源策略。

    浏览器沙箱

    浏览器沙箱主要是通过资源隔离,使得对浏览器所在的本机进行保护。但是现实中,也有人通过浏览器插件漏洞来绕过。

    恶意网址拦截

    浏览器厂商和安全厂商合作,对恶意网址给用户提醒。phishtank是一个免费提供恶意网址的机构,ev ssl是一种安全增强型证书。

    浏览器新技术需要考虑的安全

    用户友好的功能需要关注,例如和?的处理。扩展和插件的安全。

    XSS跨站脚本攻击

    XSS概念和分类

    前两章基本是道的层面,这一章就开始更多关注术的层面。XSS英文是Cross Site Script,所谓的XSS攻击是指黑客通过html注入,篡改了网页,插入了恶意脚本,从而在用户浏览时控制用户浏览器的一种攻击。

    <script>alert(CSS)</script>只是我们验证是否有xss的一种办法,而真正的payload会实现更多邪恶的功能。

    xss传统上分为反射型和存储型,DOM型,DOM其实也是一种反射型。

    XSS 攻击

    XSS payload

    这一节先介绍了cookie劫持,然后列举了通过构造get和post请求结合XSS来获取qq邮箱邮件列表,XSS钓鱼,识别用户浏览器,识别用户软件,识别用户曾经访问过的网站,获取用户真实IP等场景。

    XSS攻击平台

    常见的平台有Attack Api,BeEF,XSS-Proxy。还有书中没提到的,余弦的XSS'OR,每天可以测试一次攻击。

    工具平台可以为我们演示XSS危害提供帮助。

    XSS蠕虫

    书中提到了MySpace曾经的Samy蠕虫。真正可怕的蠕虫会悄无声息的窃取用户秘密。

    XSS构造技巧

    常见技巧有利用编码规则、突破长度限制、利用base标签、window.name。此外,不要忽视flash、一些貌似只能攻击自己的XSS如何利用、JS框架安全问题。

    XSS与各种编码请看这里:

    https://blog.csdn.net/abc_ii/article/details/16891689

    XSS防御

    HttpOnly

    通过设置cookie的httponly属性,抵御xss后的cookie劫持攻击。但是它并没有解决XSS防御。

    输入检查

    输入检查主要是对特殊字符如<,>,'等进行过滤。网上有很多XSS filter。

    但是xss filter有可能对语境理解不充分,发生漏报或者转义了用户数据。

    输出检查

    PHP和JS中都有HtmlEncode功能相关的函数。但这并不意味着就可以完全抵御XSS。书中举了一例,由于html parser优于Javascript Parser执行,还是会造成XSS。

    正确防御思路

    这一节(书中3.3.4)列举了各种可能的html输出中,如何防御,如何攻击。

    网上应该有不少cheatsheet,也可以搜索XSS cheatsheet了解更多。

    处理富文本

    如果网页中允许用户提交自定义的html代码就要关注这一节。

    防御DOM based XSS

    主要是在javascript输出html时,看输出是到内容或属性,还是事件或脚本。分别执行不同的encode。前者htmlencode,后者javascriptencode。

    业务视角看XSS

    存储型高于反射型,有用户互动地方都有风险,PageView高的地方重点关注。

    实验环境

    1、一个浏览器

    能够调试Javascript的浏览器都应该可以。

    2、Javascript调试工具

    书中提到的有Firebug,Fiddler,IE8开发者工具。

    3、JavaScript调试环境(内附JS学习网站)

    http://lixiaolai.com/2016/07/31/makecs-simplest-js-dev-environment/

    其它资源

    在线java调试工具

    https://jsfiddle.net

    BeeF

    http://www.freebuf.com/sectool/4799.html

    Attackapi框架

    http://www.cnblogs.com/milantgh/p/3645166.html

    XSS cheatsheet

    sec-wiki查找XSS

    后续学习

    如果要深入XSS,对JS必须深入学习。

  • 相关阅读:
    微服务
    flume
    mongodb
    Java 代理学习笔记
    HttpClient连接池
    一起写RPC
    spring boot cloud
    .NET MVC 表主外键关系 JSON 无限循环 方案二(推荐)
    EF提示“序列化类型为XXX的对象时检测到循环引用”
    Handlebars.js registerHelper
  • 原文地址:https://www.cnblogs.com/viphhs/p/8990199.html
Copyright © 2011-2022 走看看