《白帽子讲Web安全》笔记1-5章

转载请注明出处:http://blog.csdn.net/cym492224103

  • 第1章 安全世界观

    • 安全评估过程

      • 资产等级划分
      • 威胁分析
      • 风险分析
      • 确认解决方案
  • 第2章 浏览器安全
  • 第3章 XSS攻击
    • 反射型XSS
    • 存储型XSS
    • DOM Based XSS
    • XSS钓鱼
    • XSS攻击平台
    • Flash XSS
    • XSS防御
  • 第4章 CSRF
    • CSRF本质
    • CSRF防御
  • 第5章 点击劫持ClickJacking
    • ClickJacking的本质
    • 防止ClickJacking

第1章 安全世界观

研究系统和网络的人=Hacker
黑客使用的漏洞利用代码=exploit
没有动手能力的黑客=Script Kids
SQL注入的出现是Web安全史上的一个里程碑 1999年出现
XSS(跨站脚本攻击)1999年出现 2003重视
安全问题的本质是信任
安全是一个持续的过程

安全三要素:CIA(C:机密性 Confidentiality)(I:完整性 Integrity)(A:可行性 Availability)
C:加密数据
I:数字签名
A:随需而得

拒接服务攻击 DoS(Denial of Service) DoS破坏了安全的可行性

互联网安全的核心问题,是数据安全的问题。

安全评估过程

1.资产等级划分

目标是什么,要保护什么。

2.威胁分析

可能造成的危害来源=威胁(Threat)
把所有的威胁都找出来。

STRIDE模型(威胁建模)

威胁 定义 对应的安全属性
Spoofing(伪装) 冒充他人身份 认真
Tampering(篡改) 修改数据或代码 完整性
Repudiation(抵赖) 否认做过的事情 不可抵赖性
InformationDisclosure(信息泄露) 机密信息泄露 机密性
Denial of Service(拒绝服务) 拒绝服务 可用性
Elevation of Privilege(提升权限) 未经授权获得许可 授权

3.风险分析

可能会出现的损失=风险(Risk)
Risk = Probability(可能性) * Damage Potential(潜在损害)

DREAD模型

方面 高(3) 中(2) 低(1)
Damage Potential(潜在的损害) 获取最高权限 泄露敏感信息 泄露其他信息
Reproducibility(重现性) 随意多次攻击 重复攻击,有时间限制 很难重复攻击
Exploitability(可利用性) 短时间掌握攻击方法 熟练攻击才能完成 漏洞利用条件非常苛刻
Affected users(受影响的用户) 所有用户、默认配置 部分用户、非默认配置 匿名用户
Discoverability(可发现性) 漏洞明显、容易攻击 私有区域部分人看到 发现漏洞极难

高危(12-15)中危(8-11)低危(0-7)

4.确认解决方案

优秀的安全方案特点
有效解决问题
用户体验好
高性能
低耦合
易于扩展与升级

Secure By Default(默认安全)
类似于白名单

Defense in Depth(纵深防御)
多种不同的防御措施
深入威胁本质,做出正确的应对措施

第2章 浏览器安全

安全策略:同源策略(Same Origin Policy) 所有支持JS的浏览器
Web是构建在同源策略基础之上
所谓同源是指,域名,协议,端口相同。
不同源则拒绝请求

第3章 XSS攻击

跨站脚本攻击(Cross Site Script)

反射型XSS

非持久性XSS Non - persistent XSS
把用户输入的数据反射给浏览器,
如:黑客诱使用户点击一个恶意链接,才能攻击成功

存储型XSS

持久性XSS Persistent XSS
把用户输入的数据储存在服务器
如:发布一篇带js代码的博客文章,所有访问改博文的用户都会在他们的浏览器执行该js

DOM Based XSS

通过修改DOM节点形成XSS
类似SQL注入,标签+JS注入
如:<a href=“+str+”>test</a> str=’ onclick=alert(/test/) //

XSS Payload
Cookie劫持
构造GET与POST请求
GET 直接链接
POST JS生成form表单提交
也可以使用Charles工具修改form内容测试XSS

XSS钓鱼

伪造网页骗取用户信息

XSS攻击平台

Attack API 有多种获取用户隐私信息的JS API
BeEF+ metasploit 测试浏览器漏洞框架 可以控制被攻击者的浏览器 进行任意操作(待研究)

XSS-Proxy(代理)
一个轻量级的XSS攻击平台,实现远程控制被攻击的浏览器

XSS Worm(蠕虫)
利用服务器端软件漏洞进行传播(例:Samy Worm)
攻击条件:用户之间发生交互行为的页面,如果存在存储型XSS,则比较容易发生XSS Worm攻击。
自己理解:通过恶意地址抓取用户cookie然后利用cookie传播恶意地址。
技术:JS,模拟请求接口

回旋镖:B域存在反射型XSS_B,A域存在储存XSS_A,当用户访问A时同时嵌入B,则可以达到A跳转B,让XSS_B攻击用户目的。

Flash XSS

嵌入ActionScript脚本
限制Flash动态脚本的重要参数是allowScriptAccess,这个参数定义了Flash能否与HTML页面进行通信,它有三个值:
always:不限制
sameDomain:只允许本域的Flash与HTML通信,默认值
never:禁止通信

XSS防御

HttpOnly
浏览器将禁止页面的JavaScript访问中带有HttpOnly属性的Cookie。
XSS 格式过滤
XSS的本质是一种“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。

防御方法
XSS Filter:
html
HTMLEntitites
js
JavascriptEncode
css
encodeForCss()
url
URLEncode
以上方法都属于OWASP ESAPI的方法

第4章 CSRF

Cross Site Request Forgery 跨站点请求伪造
会受到浏览器的影响。
P3P Header 是W3C置顶的一项关于隐私的标准。
如果浏览器http头包含P3P头,则允许发送第三方Cookie。
js模拟GET和POST请求。

CSRF本质

CSRF为什么能够攻击成功?
其本质原因是重要的操作的所有参数都是可以被攻击者猜测到的。

CSRF防御

验证码
Referee Check
ToKen(不可预测性原则:保密性、随机性)

CSRF攻击是攻击者利用用户身份操作用户账户的一种攻击方式。设计CSRF的防御按必须先理解CSRF攻击的原理和本质。

第5章 点击劫持(ClickJacking)

案例:(一个透明的iframe遮罩住一个正常的btn,让用户点击btn的时候点击到透明的iframe)

ClickJacking的本质

点击劫持攻击与CSRF攻击有异曲同工之妙都是在用户不知情的情况下诱使用户完成一些动作。但是在CSRF攻击的过程中,如果出现用户交互的页面就无法顺利完成。但是点击劫持却没有这个顾虑,它利用的就是用户产生的交互。
点击劫持本质是一种视觉欺骗。

防止ClickJacking

1.禁止跨域iframe
js:
if(top.location != self.location){
parent.location = self.location;
}

2.设置X-Frame-Options(HTTP头设置)
三个可选值:
DENY(拒绝当前页加载frame页面)
SAMEORIGIN(frame只能为同域名下面的页面)
ALLOW-FROM origin(无限制)

Firefox的设置
Content Security Policy
NoScript

ClickJacking攻击有可能被攻击者利用在钓鱼、诈骗和广告作弊等方面。

学无止境=》 Web安全学习系列(2)

Web安全学习系列(1)相关推荐

  1. 【Web前端学习系列01】—HTML

    [Web前端学习系列01]-HTML HTML 基本标签-head head title标签 meta标签 link标签 style标签 script标签 base标签 文本 标题标签 h 段落标签 ...

  2. java发送post请求json格式_go语言web开发框架学习系列二:Get、Post、Put等请求及数据返回格式...

    数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...

  3. maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...

    标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...

  4. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  5. RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列

    上一篇已经讲了Rabbitmq如何在Windows平台安装,不懂请移步:RabbitMQ学习系列一:windows下安装RabbitMQ服务 一.理论: .net环境下,C#代码调用RabbitMQ消 ...

  6. ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章- ...

  7. Caffe学习系列(21):caffe图形化操作工具digits的安装与运行

    经过前面一系列的学习,我们基本上学会了如何在linux下运行caffe程序,也学会了如何用python接口进行数据及参数的可视化. 如果还没有学会的,请自行细细阅读: caffe学习系列:http:/ ...

  8. ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)

    目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...

  9. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...

  10. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

最新文章

  1. ASP.NET Web API MediaTypeFormatter
  2. nodejs新建服务器
  3. Ubuntu Linux中配置Mplayer万能播放器
  4. linux自动定时运行的脚本编写
  5. mysql判断条件用法,MySQL数据库讲解条件判断函数 MySQL数据库使用教程
  6. 02-对图像进行边界填充
  7. 解决MySQL忘记root密码
  8. Spring Cloud Gateway去掉url前缀
  9. UVa 439 - Knight Moves
  10. linux内核源码目录分析
  11. 微信红包封面小程序源码-后台独立版-带测评积分功能源码
  12. Golang实践录:使用gin框架实现转发功能:管理后端服务
  13. linux 打开关闭CPU超线程和查看逻辑CPU的个数
  14. Boosting Crowd Counting via Multifaceted Attention
  15. Android OTA升级后更新APN参数的实现
  16. android charles 证书_手机安装Charles证书
  17. CAN发送和接收数据(回环测试,ok)
  18. 记一次360众测仿真实战靶场考核WP
  19. python读写、创建文件、文件夹
  20. 基于slurm框架的GPU服务器集群搭建方法

热门文章

  1. java规则计算_亲属计算规则算法--java实现(关键算法摘要)
  2. 小武与YOLOv3 ---- 优图代码
  3. 创建型模式 - 单例模式Singleton
  4. 差分 离散化 (线段树优化lazy标记)2018ICPC SouthEastern Fishermen
  5. 项目管理工具project软件学习(七) - 创建资源,分配资源、查看资源负荷
  6. Java 基于JavaMail实现向QQ邮箱发送邮件(未测试)
  7. C#正则验证车牌、新能源车牌
  8. TCP close-wait 状态分析
  9. 交叉网线做法,开发板 PC直连
  10. Unity_触摸屏_720全景制作