赞
踩
正所谓「 Web 安全渗透」,你刚入门就把重心放在后面的「安全渗透」,而不是前面的「Web」,脱离 Web 技术搞渗透,这就属于典型的本末倒置。 当然,这也是当前 90% 以上 Web安全/渗透测试 新人们刚入门时遇到的情况。
这里顺便做一次普及:Web 技术到底有哪些?
这里我们先来举个简单的例子:
上图是一个普通的不能再普通的上网模型,涉及到三个部分,第一部分就是左边的”你“,第二部分就是连接通信双方的互联网,第三部分就是右边的网站
当“你”访问拼客学院时,从浏览器输入网址到最终看到网页,这个过程到底发生了什么?
千万千万不要小看上面的每个步骤,看上去感觉挺简单,但其实每个步骤的背后又可以拆分为 N 多个步骤。拿第三个步骤为例,**当网站收到 HTTP 请求后,到底是如何解析这个请求,并且又是如何调用数据库资源的?**这里首先会涉及到后端开发技术中的 MVC/MTV 架构,如图:
除此之外,在网站部署的时候还会涉及到 Web 容器、网关接口、静态文件、负载均衡等模块的处理,如图:
上面这一次简单的不能最简单的 Web 访问过程,其实就勾勒出一个复杂的 Web 技术生态。我们必须认识到:
Web 技术不仅仅是 Web前端开发技术(也指"网页开发"技术)
Web 技术不仅仅是 Web 后端开发技术(例如 “PHP网站开发” “Java网站开发” )
Web 技术不仅仅是 互联网通信技术(例如 DNS、HTTP、HTTPS 等)
……
我们可以用这张「 Web 技术架构图」将所有涉及到 Web 技术串联起来 =>
也就是说,要真正看懂道哥这本经典的《白帽子讲 Web 安全》或者读懂乌云上的渗透测试案例,首先,你得掂量下,自己是否具备这些前置知识:
是否能够从零开始搭建起一个网站?(网站架构)
是否了解过 HTTP 协议原理?例如用抓包软件分析过 HTTP请求和响应包有什么内容?(Web通信协议)
是否能看懂网页源码,或者用 HTML / CSS / JavaScript 做过前端页面?(Web前端)
是否清楚什么是 MVC/MTV 架构,或者用 Python / PHP / Java 做过后端架构?(Web后端 )
是否了解过常见的 Web容器/中间件,或者用过 Apache / Nginx / Tomcat?(Web容器)
是否掌握任一常见的数据库技术,包括但不限于 MySQL / SQLsever / Oracle?(数据库)
……
如果你真的掌握了以上这些 Web 技术,搞懂了网站前后端原理,甚至在代码层面能亲手开发出来。那么,你再回去看相关安全书籍或案例就不会「没啥收获」,相反地,你一定能获得这样的学习体验:
由于有 Web 前端语言基础,那么学 XSS 和 CSRF 漏洞会很快**(客户端安全)**
由于有 Web 后端语言基础,那么会很快搞定 Webshell木马、文件上传、代码执行等漏洞**(服务端安全)**
由于有 数据库 SQL 语言基础,那么你学 SQL 注入漏洞或者搞手工注入会感到轻而易举**(数据库安全)**
……
总而言之,我们要真正学懂学通「Web 安全渗透」,一定需要一个科学合理、循序渐进、第一原理驱动的学习路线,千万不要「瞎折腾」,不要急着学「渗透」,更不要一上来就用「工具」。因为 Web 安全渗透技术,首先是建立在 Web 技术之上的,绕开这些技术谈安全谈渗透,那便是 “空中楼阁”。
因此,如果你真正热爱安全技术,目标是一名合格的白帽子黑客,甚至希望未来从事网络空间安全相关职位,那么,前期潜心花费几个月的时间,把这些未来干活必定会用到的技能耐心打磨好,是不是稳赚不赔的?毕竟,大学读 4 年也未必能让你找到工作。
— 以下才是正文—
那么,Web 安全渗透的学习路线应该是怎样的?
考虑到很多朋友是新手,因此,接下来我会带领你一起来制定这条路线:
《Web 安全工程师/渗透测试工程师学习路线图》
所谓「授之以鱼不如授之以渔」,本学习路线图中我会告诉你每个阶段需要学什么、为什么要学这些、需要花费多少时间、学完之后要达到的目标。
更重要的是,本学习路线图提到的所有技术内容和推荐资源,都可以通过搜索引擎免费找到,包括书籍、文章、教程、工具等等。因此,只要足够耐心,即便 0 基础,按照这个路线图,坚持学习 100 天,你也能够通过自学的方式掌握这些技术。
注:100 天是我个人推荐的学习周期,结合了我们拼客学院多年来的安全教育经验( 始于2013年 ),从企业雇主和学员们的各个数据反馈综合得出。因此,这个周期未必适合每一个人,你可以根据自身情况来动态调整。
接下来,我们对这张路线图进行阶段拆解,分为学习导论、技能清单、工具软件、学习资源、学习周期等方面详细展开 =>
第 1 阶段 Web 技术入门
1.0 学习导论
此阶段,我们的学习目标是了解网络安全行业的法律法规 / 学习方法 / 求职目标,搭建属于自己的博客 / 论坛 / 网站(成为一名站长)、掌握 Web 技术架构、搞懂浏览器和网站之间的通信原理。
1.1 技能清单
Web 安全导论
Web 网站实战
HTTP原理与实践
1.2 工具软件
网站运行环境
CMS 程序包
抓包调试
1.3 学习资源
推荐网站
推荐书籍
1.4 学习周期
第 2 阶段 Web 前端开发
2.0 学习导论
此阶段,我们的学习目标是掌握 Web 前端开发技术,学习 HTML、CSS、JavaScript 编程语言,能独立制作 Web商业级页面。
2.1 技能清单
HTML 编程原理与实践
CSS 编程原理与实践
JavaScript 编程原理与实践
2.2 工具软件
2.3 学习资源
推荐网站
推荐书籍
2.4 学习周期
第 3 阶段 Web 后端开发
3.0 学习导论
此阶段,我们的学习目标是掌握 Web 后端开发,学习 Python 编程与 Django Web 开发框架,掌握 MySQL 数据库原理与操作。从零开始独立开发一个 Web 网站,并基于 LNMP 架构在 CentOS 服务器上进行部署。
这里要特别强调下,后端技术涉及的编程语言、Web框架、数据库、中间件、操作系统等技术众多,作为新手,可以遵循一个原则,即「深入某个技术栈,横向扩展其他」。
例如,在这个路线图里面,我们选择 Python/Django 作为后端学习的技术栈,因为相比 Java 或 PHP,Python 对于新手而言更加友好,代码简洁且语法清晰。不仅如此,由于众多安全工具和测试代码基于 Python 开发,其也被称为黑客或网络安全领域的第一语言。
当我们完成了 Python / Django 的学习之后,后续也可以再横向拓展到 PHP/Thinkphp 或 Java/Spring 等后端技术栈,这样才能更好的胜任 Web 安全测试工作。
3.1 技能清单
Python 编程原理与实践
Django Web 项目开发实战
.2 工具软件
3.3 学习资源
推荐网站
推荐书籍
3.4 学习周期
第 4 阶段 Web 安全渗透
4.0 学习导论
此阶段,我们的学习目标是:
4.1 技能清单
Web安全渗透之实验室搭建
Web安全渗透之信息搜集
Web安全渗透之漏洞扫描
Web安全渗透之SQL注入与防御
Web安全渗透之文件上传攻击与防御
Web安全渗透之文件包含攻击与防御
Web安全渗透之命令执行攻击与防御
Web安全渗透之 XSS 攻击与防御
Web安全渗透之 CSRF 攻击与防御
高级渗透测试系列
CTF 靶机渗透实战系列
4.2 工具软件
信息搜集
漏洞扫描
SQL注入漏洞
XSS/CSRF漏洞
文件上传
命令执行
……
4.3 学习资源
4.4 学习周期
本文正式结束啦~~~
希望对所有想进入信息安全行业、或正在学习Web安全、渗透测试的朋友们带来帮助~~~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/140698?site
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。