《白帽子讲web安全》读书笔记

因为本书作于2010年前,书中所使用的部分技术版本已经过于老旧,很多书中提到的攻击方法和绕过思路都已经严重落后,但之所以本书会成为安全界的经典必读书目,就是因为本书所讨论的安全思想尤为精华,对于企业来说的安全建设十分有用,所以我打算读这本书的过程中主要记录下来一些重要的安全思路,绕过思想,重要的烧过姿势,不回去特意记录他所有的精工代码等等

对于IT这个领域来说10年的时间足矣改变整个行业的组织架构,走了很多,也来了很多

 

 

 

第一章  我的安全世界观

1.4    安全是一个持续的过程;破除迷信,没有银弹!

1.5    安全三要素:机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)

1.6    实施前的安全评估    资产等级划分:“ 互联网的安全问题,使数据安全的问题 ” 威胁分析:“ 威胁建模 ”  -> STRIDE模型、DREAD模型

1.7    白帽子兵法    Secure by default  黑名单、白名单,最小权限原则    纵深防御原则    数据与代码分离原则    不可预测性原则    

 

 

 

第二章   浏览器安全

2.1    浏览器的同源策略     (CORS漏洞)

2.2    浏览器沙箱     Chrome的多进程:浏览器进程、渲染进程、插件进程、扩展进程

2.3    恶意网址拦截:提供恶意网址黑名单组织:PhishTank

2.4   浏览器自身拦截部分恶意代码、脚本(XSS,不安全的http协议或网址)

 

 

 

第三章   跨站脚本攻击(XSS)

3.1     XSS简介  Cross Site Script    反射型XSS、存储型XSS,Dom型XSS:通过网站功能修改html的本身构造,从而造成恶意JS被执行

3.2.1    cookie中的HttpOnly可以有效防止cookie劫持

3.2.2    构造恶意GET、POST请求:用js模拟浏览器发包,从而篡改网站数据(类似于csrf)

            利用XSS获取服务器的数据(QQ邮箱):P51代码 

            利用XSS识别用户浏览器,从而根据版本进行攻击:P53~P55

            利用XSS识别用户所有安装的软件:P55~P57

            利用XSS识获取用户真实IP:P61~P62

3.2.3    集成的XSS攻击框架:BeEF

3.2.4    XSS Worm:XSS蠕虫病毒  P64~P73

3.2.6    XSS构造技巧    利用字符编码

                                      绕过长度限制:通过location.hash绕过web日志、注释符

                                      使用标签:劫持所有当前页面中使用 “ 相对路径 ” 的标签

                                      使用windows.name实现跨域传值  构造XSS

3.2.7     将鸡肋XSS漏洞变废为宝

             FLASH对的部分漏洞

             Anehta的回旋镖:XSS跳板攻击:达到让A域的xss攻击B域的目标  P83、P84、P85

3.2.8    Flash XSS

            在Flash中嵌入ActionScript脚本:  getURL("javascript:alert(document.cookie)")   将Flash嵌入页面中

            Flash危险参数:allowNetWorking

3.2.9    JS框架存在XSS漏洞

            常见的js框架:Dojo、YUI、jQuery

3.3    XSS的防御

         HTTPOnly:P90 Cookie的使用过程  四步骤    P91 部署HttpOnly的不同语言的方法

         Apache老版本中拥有一个绕过HttpOnly的姿势

3.3.2    输入检查:  XSS Filter   

3.3.3    输出检查:  使用安全的编码函数:unicode、htmlencode、XMLencode、JSONencode

                                在XSS payload中注入解码函数,使其变成代码从而执行恶意脚本

3.3.4    正确的防御XSS   前端代码

  • 在html标签中输出:htmlencode
  • 在HTML属性中输出:htmlencode

你可能感兴趣的:(读书笔记)