《白帽子讲Web安全》学习笔记

一、为何要了解Web安全

  最近加入新公司后,公司的官网突然被Google标记为了不安全的诈骗网站,一时间我们信息技术部门成为了众矢之的,虽然老官网并不是我们开发的(因为开发老官网的前辈们全都跑路了)。我们花了很多时间做Web安全扫描以及修复,在检查和修复过程中,发现老系统的代码的不可维护性(再次说明整洁代码之道Clean Code的重要性)及安全性(同时也说明了Web安全的重要性)。

  修复之后,向Google提出了申诉,漫长的等待(1~2天对于公司的官网来说就是Money啊!)后Google放开了。当我们庆幸终于把该死的老官网的安全问题解决了的时候,过了几天后又被Google加入黑名单了,WTF!于是,再次安全扫描,排除一切可能的原因,做好备用方案,再次进入安全修复迭代...

  对于我们来说,这次的经验让我意识到,不遵守整洁代码之道和安全系统之道的系统就像一颗定时炸弹,你不知道它什么时候就会爆炸又或者是虚晃一枪,又让我想起整洁代码之道一书的封面:

  上面这张图是M104:草帽星系,其核心是一个质量超大的黑洞,有100万个太阳那么重,环绕着M104的光环就像一顶墨西哥草帽,仿佛经历了大爆炸之后碎片四溅的产物。联系到我们所经历过的没由整洁代码风格各异不可维护的软件项目,其实当你接手时之前的代码都是一个个的黑洞,存在着某天会定时爆发的风险,而当它真正爆发时,接手这个项目的所有人又或者没有接手过的人都会因此遭殃

  因此,作为一名Web系统开发者,不但要追求整洁代码,也要了解Web安全知识。目前系统讲解Web安全的书籍里,阿里巴巴高级技术专家吴翰清的这本《白帽子讲Web安全》是评分较高的一本(豆瓣评分7.4),虽然现在看来有点过时(很多的漏洞案例都早已被修复),但是基础的知识点都有覆盖,是建立安全思维的好书!此外,它对于安全开发流程与运营的介绍,同样具有深刻的行业指导意义。所以,我快速地学习了一遍,做了一些笔记与各位分享。

二、精华内容导图笔记

完整的笔记导图在线浏览地址:白帽子说Web安全-总结 思维导图模板_ProcessOn思维导图、流程图,下面为了阅读体验,分成3个部分来显示。

2.1 客户端脚本安全

2.2 服务端应用安全

2.3 安全运营体系建设

    网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图: 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦! 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器是重要的互联网入口,一旦受到漏洞攻击,将直接影响到用户的信息安全。作为攻击者有哪些攻击思路,作为用户有哪些应对手段?在本书中我们将给出解答,带你了解浏览器安全的方方面面。本书兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。本书从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以然。 第1篇 初探浏览器安全 1 1 漏洞与浏览器安全 3 1.1 漏洞的三要素 3 1.2 漏洞的生命周期 4 1.3 浏览器安全概述 5 1.4 浏览器安全的现状 7 1.5 浏览器的应对策略 9 1.6 “白帽子”与浏览器厂商的联手协作 9 1.7 全书概览 10 1.8 本章小结 12 2 浏览器中常见的安全概念 13 2.1 URL 13 2.1.1 URL的标准形式 15 2.1.2 IRI 16 2.1.3 URL的“可视化”问题——字形欺骗钓鱼攻击 18 2.1.4 国际化域名字形欺骗攻击 19 2.1.5 自纠错与Unicode字符分解映射 20 2.1.6 登录信息钓鱼攻击 23 2.2 HTTP协议 24 2.2.1 HTTP HEADER 25 2.2.2 发起HTTP请求 26 2.2.3 Cookie 28 2.2.4 收到响应 29 2.2.5 HTTP协议自身的安全问题 31 2.2.6 注入响应头:CRLF攻击 31 2.2.7 攻击响应:HTTP 401 钓鱼 32 2.3 浏览器信息安全的保障 33 2.3.1 源 33 2.3.2 同源准则 34 2.3.3 源的特殊处理 34 2.3.4 攻击同源准则:IE11跨任意域脚本注入一例 35 2.4 特殊区域的安全限制 37 2.4.1 安全域 37 2.4.2 本地域 37 2.5 伪协议 38 2.5.1 data伪协议 38 2.5.2 about伪协议 40 2.5.3 javascript/vbscript伪协议 41 2.5.4 伪协议逻辑出错:某浏览器跨任意域脚本注入一例 42 2.6 本章小结 43 3 探索浏览器的导航过程 45 3.1 导航开始 45 3.1.1 浏览器的导航过程 46 3.1.2 DNS请求 46 3.1.3 DNS劫持和DNS污染 47 3.1.4 导航尚未开始时的状态同步问题 48 3.1.5 实例:针对导航过程发起攻击 49 3.2 建立安全连接 50 3.2.1 HTTPS 50 3.2.2 HTTPS请求中的Cookie 51 3.3 响应数据的安全检查——XSS过滤器 52 3.3.1 IE XSS Filter的实现原理 53 3.3.2 Chrome XSSAuditor的工作原理 55 3.4 文档的预处理 56 3.4.1 浏览器对HTML文档的标准化 56 3.4.2 设置兼容模式 57 3.5 处理脚本 59 3.5.1 脚本的编码 60 3.5.2 IE的CSS expression的各种编码模式 62 3.5.3 浏览器的应对策略:CSP 63 3.5.4 “绕过”CSP:MIME Sniff 65 3.5.5 简单的Fuzz:混淆CSS expression表达式 68 3.6 攻击HTML标准化过程绕过IE/Chrome的XSS Filter 71 3.7 本章小结 73 4 页面显示时的安全问题 75 4.1 点击劫持 76 4.1.1 点击劫持页面的构造 76 4.1.2 X-Frame-Options 78 4.2 HTML5的安全问题 80 4.2.1 存储API 81 4.2.2 跨域资源共享 83 4.2.3 基于FullScreen和Notification API的新型钓鱼攻击 84 4.2.4 组合API后可能导致的安全问题 87 4.2.5 引入新的XSS 攻击向量 87 4.2.6 互联网威胁 89 4.3 HTTPS与中间人攻击 92 4.3.1 HTTPS的绿锁 92 4.3.2 HTTPS有多安全? 94 4.3.3 HSTS 96 4.3.4 使用SSLStrip阻止HTTP升级HTTPS 97 4.3.5 使用Fiddler对PC端快速进行中间人攻击测试 99 4.3.6 使用Fiddler脚本和AutoResponse自动发起中间人攻击 101 4.4 本章小结 103 5 浏览器扩展与插件的安全问题 105 5.1 插件 106 5.1.1 ActiveX 106 5.1.2 ActiveX的安全问题 107 5.1.3 ActiveX的逻辑漏洞 108 5.1.4 NPAPI、PPAPI 111 5.2 定制浏览器的扩展和插件的漏洞 113 5.2.1 特权API暴露 114 5.2.2 DOM 修改引入攻击向量 114 5.2.3 Windows文件名相关的多个问题 115 5.2.4 NPAPI DLL的问题 116 5.2.5 同源检查不完善 117 5.2.6 Content Script劫持 118 5.2.7 权限隔离失败 118 5.2.8 配合切核策略+本地内部页XSS执行代码 118 5.2.9 下载服务器限制宽松 119 5.2.10 TLDs判定问题 119 5.2.11 经典漏洞 120 5.2.12 中间人 120 5.3 Adobe Flash插件与Action Script 121 5.3.1 Flash的语言——Action Script 121 5.3.2 Flash文档的反编译、再编译与调试 122 5.3.3 SWF的网络交互:URLLoader 124 5.3.4 crossdomain.xml与Flash的“沙盒” 125 5.3.5 ExternalInterface 126 5.3.6 FLASH XSS 126 5.3.7 Microsoft Edge中的Flash ActiveX 130 5.4 浏览器的沙盒 131 5.4.1 受限令牌 132 5.4.2 完整性级别与IE的保护模式 133 5.4.3 任务对象 134 5.5 本章小结 135 6 移动端的浏览器安全 137 6.1 移动浏览器的安全状况 138 6.2 移动端的威胁 141 6.2.1 通用跨站脚本攻击 141 6.2.2 地址栏伪造 142 6.2.3 界面伪装 143 6.3 结合系统特性进行攻击 144 6.3.1 Android一例漏洞:使用Intent URL Scheme绕过Chrome SOP 144 6.3.2 iOS的一例漏洞:自动拨号泄露隐私 146 6.3.3 Windows Phone一例未修补漏洞:利用Cortana显示IE中已保存密码 147 6.4 本章小结 149 第2篇 实战网马与代码调试 151 7 实战浏览器恶意网页分析 153 7.1 恶意网站中“看得见的”攻防 153 7.2 恶意脚本的抓取和分析 155 7.2.1 发现含攻击代码的网址 156 7.2.2 使用rDNS扩大搜索结果 156 7.2.3 下载攻击代码 157 7.2.4 搭建测试环境 158 7.2.5 初识网马反混淆工具 158 7.2.6 恶意脚本中常见的编码方式 159 7.3 一个简单的挂马代码的处理 169 7.3.1 快速判断挂马 169 7.3.2 JS代码的格式化 170 7.4 更为复杂的代码处理:对Angler网马工具包的反混淆 170 7.4.1 Angler EK的特征 170 7.4.2 推理:找出代码中的“解密-执行”模式 172 7.4.3 检证:确定“解密-执行”模式的位置和方法 175 7.4.4 追踪:使用浏览器特性判断用户环境 179 7.4.5 利用漏洞CVE-2014-6332发起攻击 188 7.5 本章小结 190 8 调试工具与Shellcode 191 8.1 调试工具的用法 191 8.1.1 调试符号 191 8.1.2 WinDbg的用法 192 8.1.3 IDA的用法 195 8.1.4 OllyDbg的用法 199 8.2 与Shellcode的相关名词 201 8.2.1 机器指令 201 8.2.2 控制关键内存地址 203 8.2.3 NOP Slide 204 8.2.4 Magic Number 0x8123 205 8.3 Shellcode的处理 205 8.3.1 实现通用的Shellcode 206 8.3.2 调试网马中的Shellcode 212 8.4 本章小结 218 第3篇 深度探索浏览器漏洞 219 9 漏洞的挖掘 221 9.1 挖0day 221 9.1.1 ActiveX Fuzzer 的原理 221 9.1.2 使用AxMan Fuzzer来Fuzz ActiveX插件 222 9.1.3 现场复现 225 9.2 DOM Fuzzer的搭建 229 9.2.1 搭建运行Grinder的环境 230 9.2.2 Fuzzer的结构与修改 231 9.2.3 现场复现 232 9.3 崩溃分析 233 9.3.1 哪些典型崩溃不能称作浏览器漏洞 233 9.3.2 ActiveX崩溃一例 236 9.3.3 IE11崩溃一例 238 9.4 本章小结 244 10 网页的渲染 245 10.1 网页的渲染 245 10.1.1 渲染引擎 245 10.1.2 DOM结构模型 247 10.1.3 IE解析HTML的过程 249 10.1.4 IE的Tokenize 251 10.1.5 Chrome解析HTML的过程 253 10.1.6 Chrome的Tokenize 254 10.2 元素的创建 256 10.2.1 IE中元素的创建过程 256 10.2.2 Chrome中元素的创建过程 257 10.2.3 元素的生成规律 258 10.3 实战:使用WinDbg跟踪元素的生成 260 10.4 实战:使用WinDbg跟踪元素的插入 263 10.5 实战:使用WinDbg跟踪元素的释放 264 10.6 本章小结 266 11 漏洞的分析 267 11.1 分析IE漏洞CVE-2012-4969 267 11.1.1 崩溃分析 268 11.1.2 追根溯源 270 11.2 分析JScript9漏洞CVE-2015-2425 271 11.2.1 跟踪漏洞 275 11.3 Hacking Team的Flash漏洞CVE-2015-5119 分析 276 11.3.1 静态阅读:成因分析 276 11.3.2 Vector的覆盖过程 278 11.4 本章小结 279 12 漏洞的利用 281 12.1 ShellCode的编写 281 12.2 CVE-2012-4969 的利用 284 12.2.1 DEP/ASLR绕过 287 12.3 CVE-2015-5119的Vector 296 12.4 本章小结 301 附录 303 附录A IE(Edge)的URL截断 303 附录B IE的控制台截断 304 附录C 表单中的mailto: 外部协议 305 附录D 危险的regedit: 外部协议 306 附录E IE XSS Filter的漏洞也会帮助执行XSS 307 附录F 更高级的策略保护——CSP Level 2 308 附录G 更快的执行速度——JScript5 to Chakra 309 附录H Chakra的整数存储 310 附录I 安全实践 311 参考资料 315
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值