很多小白想要学习Web安全,但是担心自己所学的专业或者是自己的工作和计算机没有太大联系,会成为自己学习Web安全的阻碍。
而且Web安全所需要学习的知识纷繁复杂,怎样学习才可以少走弯路,是Web安全小白最关心的问题。
笔者大学是学土木的,和计算机可以说没有半毛钱关系,初学时也踩了不少的坑,曾经面对网络上浩瀚如海的学习资料也觉得不知从何学起。
所以我也算得上“过来人”,我就从如何正确入门Web安全以及Web安全能给我们带来什么为大家提供一些建议。
同学们刚开始学习Web安全的过程中可能会陷入两种状态:
1.疯狂看书看视频,很少实战,以看完了多少视频多少书衡定自己的水平,自我感觉已经入了Web安全的门,但是一放到实战环境中就懵逼。
2.不屑于学习基础的漏洞原理知识,认为渗透测试就是awvs,sqlmap等工具一把梭,但是其实根本不可能有太多的实战经验,因为现在很多站点已经无法利用工具傻瓜式找到漏洞了。
这两种状态都无法让我们在Web安全的路上走得更远,甚至可能会越走越偏。
1.漏洞产生的点、产生的原因、防御手段要理解
Web安全学习过程中,要知其然更要知其所以然。比如大部分人接触的第一种漏洞类型可能就是xss,那么xss分哪几种类型?
各自可能存在于什么样的功能之中?
当我们执行一个payload时,浏览器是怎样解析它的?
网站对一些特殊符号进行了过滤,要怎么绕过?
...
要理解这些问题,就需要我们去学习JavaScript的相关知识,你不必达到JavaScript开发的水平,但是起码要能看得懂代码。
同样的,想要学会sql注入,就一定要学习sql语句,并且达到熟练使用的程度。只有这样,才能在实际漏洞挖掘过程中做到快速、精准。同时,掌握了sql语句,使用sqlmap才会更加得心应手。
同理,挖掘代码执行漏洞需要了解后端开发语言,命令执行需要了解操作系统相关知识等等。
2.学会使用搜索引擎
其实不管是在渗透测试实战中的信息搜集阶段,还是在寻找学习资料的过程中,都需要我们掌握高级搜索技巧。
比如测试某SRC,在使用: site: *.xxx.com查询它被搜索引擎爬到的二级域名时,发现了一个不应该被爬到的内部后台,还含有大量数据。这样通过搜索引擎,就成功的“捡”到一枚高危漏洞。
同样的,通过搜索语法,也可以检索出可能存在漏洞特征的网址。
总的来说,在信息搜集阶段,学会使用各种搜索引擎的高级搜索语法是必备的技能(这里的搜索引擎包括专用的zoomeye、shodan、fofa、exp-db等)。
3.至少熟练掌握一门编程语言
不管是什么语言,对于Web安全研究人员来说都是帮助我们更有效的挖掘漏洞的工具,python、C、C++、Java甚至是易语言都可以,不要在选择语言这种事上浪费过多的时间,每个编程语言都有其特点,用好了都是神兵利器。
就像饱受诟病的易语言,早期很多的渗透测试工具都是用它写出来的,只要有用,就不会有人觉得low。
4.自动化测试工具不但要会用,还要有修改的能力
Sqlmap、burpsuite、nmap、Metasploit等几乎是每个Web安全研究人员都离不开的工具,很多人在学习这些工具的过程中,只关注了它们的基本使用手法,却并没有注意到这些牛X的工具其实很多都是开源的,这也就意味着我们可以在这些工具的基础上进行二次开发,让它们可以在某些特殊的情境下实现更强大的功能,同时也可以结合自己的渗透测试经验和习惯,定制属于自己的兵器库。
5.一定要实战练习!
学习Web安全切忌眼高手低,很多东西不动手操作一下的话真的很难真正掌握。
所以,看了视频或者文档后,一定要及时练习,目前市面上很多靶场足以让你走出新手村(如pikachu、dorabox、bee-box、dvwa)。
另外,在复现靶场漏洞时,要独立完成,直接搜索解题过程并不会给你带来多少提高,反而是在浪费你的时间。
1.可以让你更全面的理解网络项目的相关技术
Web安全是一个涵盖方面很广的技术,一个成熟的Web安全研究人员需要掌握前端开发、后端开发、服务器运维、数据库存储等技术,在学习的过程中,可以让你对网络、对Web程序的安全运行有更深层次的理解。
2.可以获得更多收益
目前,稍微大一点的公司对于自家产品的安全都很重视,这也就催生了各种各样的漏洞报告平台(补天、漏洞盒子、漏洞银行、阿里众测、同舟公测等),同时很多企业也建立了自己的安全响应平台(SRC),白帽子在发现漏洞后可以上报给平台或者SRC,然后根据漏洞的威害程度,平台会给予一定的现金奖励,很多白帽子业余挖SRC,也可以保证收入可观。
也许你在学习的过程中,会无规划、效率低、难自律、没方向、没答疑、没时间、太孤独、没互动……
6月12日晚上8:00,为了让爱好者们“无痛入门”,我们特别准备了一场免费的直播课:《从学校到职场:安全小白进阶之路》