(本文源于转载或摘抄整理)
2016-06-12 Fooying 优主张
最近比较忙,灵感稍微有点缺乏,本着宁缺毋滥的想法,所以一直也没憋出一篇文章来,希望大家见谅,想了想,整理了一篇关于 Web学习的文章,因为总有人会问类似的问题,所以想着直接整理下以前回答以及自己的一些经验,我想对大家的学习应该有一些参考价值!这是该系列的第一篇,后续应该还有有工具等其他篇。
我接触安全行业有8年了,在高中的时候开始感兴趣并且学习安全的,启蒙老师是《黑客X档案》以及《黑客防线》,后来才看到的《非安全手册》,基本刚开始的时候,很多人学的估计都是网吧黑客(万象之类的)、黑站(很多人估计第一个黑的就自己学校的),我也不例外,反正在网吧免费上网的那段日子是快乐的,至今还印象很深刻,挺怀念那段日子的,那时候留校,每周的生活费基本就花在买书上了,虽然生活周边找不到志同道合者,不过在网络上有一堆朋友。
其实在我接触安全之前,我最早接触的是编程,我记得最早学的是我姐他们上课的书,是谭浩强的《C语言》,再后来参加信息奥赛,学的 Pascal,以及后面自学了 VB、Delphi(这个还是受啊D注入工具影响的)、C#、Python等,甚至于易语言我也学了,还用了挺长一段时间。
所以首先要推荐的是编程,我觉得学习安全必须得掌握一定的编程,本质上,Web 开发与 Web 安全是不分家的,所以说要求掌握一定的 Web 开发能力,顺带一些脚本开发、数据库查询能力:
1、基本的HTML/CSS/JavaScript
前两者就不说了,JS 推荐书籍《JavaScript DOM 编程艺术 》
2、Pyhton
我觉得 Python 是身为黑客必备的编程语言,推荐书籍《Python 核心编程》,现在中文版最新应该是第三版,至于有同学会问学2.x好还是学3.x,我的建议是学3.x,虽然现在很多老的代码是2.x,不过3.x是趋势,另外其实不管是3.x还是2.x,掌握一个,再切换都很容易
3、结构化查询语言 SQL
SQL 的学习是必要的,比如说 SQL 注入,就要求前提掌握 SQL,因为我没有专门的去买书学过 SQL,大部分是通过网上资料自学,因为没看过,所以没什么书籍可以推荐,推荐下w3school的教程,http://www.w3school.com.cn/sql/
编程方面就推荐这三部分把,我觉得是基本的必须要学的,其他的比如 PHP,我觉得也很有必要,比如 PHP注入、PHP代码审计等,还有 Web 漏洞里常见的有 Struts 漏洞、Java反序列漏洞,是否 Java 也需要学下?我觉得精力有限,因人而异,也看自己的方向,更多的看自己在学习、研究过程中的需求,碰到不懂的就加强下,就针对性的去学习,但不可能说追求所有都精通之类的。
后来的话,陆续也看了一些 Web 安全方面的书籍,相关的书籍比较多,我就不一一列举了,就推荐一些我觉得不错的中文书籍(因为我英文不好,虽然也看了几本英文书,但是还是不好意思推荐):
1、《Web 前端黑客技术与揭秘》 前端黑客必备,cos 和 xisigr 出的书
2、《白帽子讲Web安全》道哥出的书
3、《黑客攻防技术宝典-Web实战篇》
4、《Web之困》
5、《Web应用安全权威指南》
6、《SQL注入攻击与防御》
7、《XSS跨站脚本-攻击剖析与防御》
这里同样不展开,在细分领域也有不同的书,具体的我也不多做推荐了,这里关于 XSS 特别推荐下 PKAV 团队整理的思维导图 (http://pkav.net/XSS.png), (http://pkav.net/XSS2.png), 关于PHP 方面推荐下 80vul,也就是黑哥他们团队的成果:https://code.google.com/archive/p/pasc2at/wikis/SimplifiedChinese.wiki
其他的一些我觉得需要学习或者了解的:
1、需要掌握 OWasp Top 10,包含原理、测试方法、防护方法(https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project)
2、需要了解掌握网络请求
3、掌握使用一些安全工具(后续文章)
4、学会关注、分析漏洞和编写 PoC
5、关注一些网站,关注最新的安全/漏洞动态、技术(后续文章)
6、关注一些安全圈微信公众号/专栏等
7、Twitter 是一个获取最新漏洞、最新技术点的好地方,前提是你要关注些大牛(这个后续考虑单独文章来讲)
8、安全公司/甲方公司安全团队除了人品之外,更多时候看中的是个人的实战能力,以及做过的一些事,所以建议可以适当的刷一些 SRC(后续整理列表)、写一些漏洞分析、PoC等
9、虽然我不想承认,但是适当的参加一些 CTF 也是不错的
10、融入这个圈子,比如参加一些安全会议等
接下来,推荐几个我觉得可以作为参考的技能表、知识整理和问答:
1、http://blog.knownsec.com/Knownsec_RD_Checklist/index.html 来自我们团队的知道创宇技能表,当前最新版本 3.1(点击『阅读原文』访问)
2、零基础如何学习 Web 安全? https://www.zhihu.com/question/21606800/answer/22268855
3、西电信安协会-技能时间轴 http://file.anquanquan.info/tuijian/jinengzhou.pdf
4、i 春秋学习规划图 http://www.ichunqiu.com/main/#study-plan
整理来说,如果一定要让我给一个路线的话,我觉得按照我从上到下的路线去学习,以及最后的建议去掌握这些技能即可,当然,文章中可能还欠缺一些内容,比如工具的掌握等,后续会继续写,大家可以关注我后续的文章。
然后,最重要的,更多时候,我觉得光看不练是没有用的,用黑哥的话『做』,所以不止是学习,更多的时候去动手操作,去实践。