准备往Web安全工程师发展,学习路线大致如下,以后会根据自己的学习进度和工作中得具体要求不断更新这个成长路线,同时也会根据个人发展推荐其他安全方向学习路线,比如路由器安全、工控安全等这些,现阶段感觉都挺厉害的,不过还是先专心研究好Web安全再说其他的吧。
首先推荐知道创宇技能表,是余弦大牛所在公司知道创宇内部技能表,框架性极强,个人感觉这个技能表里的东西都学完、学透,至少也是一个小牛吧(个人眼界低,误喷),具体的学习路线就是以该技能表为主,再辅助其他学习路线。(顺便推荐下余弦大大的公众号:懒人在思考,最开始关注的时候更新还比较频繁,最近估计忙很少更新,可以看看大大之前的文章学习,同时还可以加入大大的知识星球,在公众号里的灰袍技能里有,里边大牛不少,不过还得付费才能进入,博主学生党穷还没加入,现在又不予许进入,以后有机会一定要进去看看)
知道创宇技能表地址:http://blog.knownsec.com/Knownsec_RD_Checklist/知道创宇技能表建议认真阅读,反复学习其中精华!
专业技能
原则
至少完整看完与练习好一本书 至少过一遍官方文档基础必备
上手Linux
《鸟哥的Linux私房菜》
百度云链接: https://pan.baidu.com/s/18oVhGanerwoW3wM3rOVAQg 密码: b8qe- tips: 我还没有系统的看,可以把个人电脑重装从Linux系统,也可以用VMware虚拟机创建一个Linux系统练手,然后再根据个人需要决定。镜像可以去I Tell You下载,U盘启动器我用的是老毛桃,还有大白菜什么的,可以选择自己喜欢的,具体教程网上也很多,可以自己查找。
熟练VIM
- 实战至少3回合:http://coolshell.cn/articles/5426.html
- 还未上手,尴尬,等以后学习了再补充。
上手Python
https://www.python.org/dev/peps/pep-0008/ tips:PEP8编码规范,可以简单了解等以后再看
《Python核心编程3》 百度云链接:https://pan.baidu.com/s/1h_EtQFuE_lqnbSfY10Bmhw 密码:0l7z
- tips: 《Python核心编程3》是以Python3为基础讲解,内容适合有基础的人学习,如果想入手Python3,可以先从Python3 - 廖雪峰的官方网站学起,学完以后再入手《Python核心编程3》。不过现下Python2和Python3应用都比较广泛,两者都学习下比较好,主要是看个人意愿。我最开始不知道这个技能表的时候,先从廖雪峰那开始学习,然后转到《Python核心编程2》,准备学完以后学习《Python核心编程3》,大致翻了下这本书,比较适合在学完基础之后再学习该书,而且这几本书内都有值得学习的东西,都看还是比较好的。另外《Python核心编程2》在下边也有大牛指点学习要点,每看完一章做个总结沉淀一下会
《Python核心编程2》
第4章 Python对象
完整熟练 6.8 Unicode
完整熟练 8.11 迭代器和iter()函数
完整熟练 第9章 文件的输入和输出
完整熟练 第10章 错误和异常
完整熟练 第11章 函数和函数式编程
完整熟练 第12章 模块
完整熟练 第14章 执行环境
完整熟练 第15章 正则表达式
完整熟练
第18章 多线程编程
完整熟练 20.2 使用Python进行Web应用:创建一个简单的Web客户端
完整熟练 算法
快排 二分
tips: 这些算法可以看看考研类的数据结构讲解视频,计算机考研类的视频还是比较基础全面的,我研究过数据结构这门专业课,当时以老师上课的PPT课件为主,然后辅以数据结构考研视频。像计算机网络、计算机组成原理、操作系统这些都是比较基础的,在学习中总会涉及到这方面的知识,本人准备等这些基础必备的技术学习的差不多是,再重新学习,具体的视频可以搜索最新的计算机考研视频学习。
正则表达式
调试工具
Kodos
RegexBuddy
支持多种语言 支持调试优化http://www.regexper.com/
正则图解- tips: 这个30分钟入门我学过,学习时间短入门快,该说的都有涉及到,可以拿着个入门,然后用Python写一些简单的爬虫加深正则表达式的理解,最后在学习其他的教程进行深入研究。
- http://wiki.ubuntu.org.cn/Python正则表达式操作指南
《精通正则表达式》 tips: 还没有看,等看得时候再补链接
最近看了一些其他的学习路线,比如SecWiKi的Web安全工程师发展路线,说的很详细,准备最近先跟着这个学习,看看效果,具体的学习笔记和心得在之后也会发在博客里。下面的都是摘抄,可以简单过下一下,不想看也可以,等以后看完再补充评价,不过 《精通脚本黑客》里讲的都是前端基础,而且也有些老,我会边看边将最新的补充在博客内。最下面是一些渗透测试演练环境,可以自行下载学习。
书
《白帽子讲Web安全》 百度云链接:https://pan.baidu.com/s/1SaZPhvAroBPmX4lrkFLg6Q 密码:5lvc
《Web前端黑客技术揭秘》 百度云链接:https://pan.baidu.com/s/1UUVzYoqvQOR-0Igm0DKWIA 密码:l2rn
我和xisigr出品 《SQL注入攻击与防御》 百度云链接:https://pan.baidu.com/s/1TRPtf_ErhsckN-e6gAICKw 密码:119x tips: 看过《白帽子讲Web安全》和《SQL注入攻击与防御》,内容深,看第一遍的时候比较懵,然后学了学SQL语法、JS等看了几遍,等过段时间再继续学习,到时也会在博客中写一些读书笔记。学习《SQL注入攻击与防御》时也可以搭建环境进行模拟实验,比如sqli-labs等,也可以在一些平台上练习下CTF习题入下门,比如i春秋、实验吧这些,我在看书的时候就是拿这些练习,学了点基础的东西。最底下也有其他的练习环境,可以自行摸索。
本篇文章会根据我的学习进度不定时更新,文章如果写的有问题或者您有更好的学习路线,请在评论区告知,万分感谢。希望与你共同学习!
SecWiKi的Web安全工程师路线地址: https://www.sec-wiki.com/skill/2职位描述:
- 对公司网站、业务系统进行安全评估测试(黑盒、白盒测试);
- 对公司各类系统进行安全加固;
- 对公司安全事件进行响应,清理后门,根据日志分析攻击途径;
- 安全技术研究,包括安全防范技术,黑客技术等;
- 跟踪最新漏洞信息,进行业务产品的安全检查。
职位要求:
- 熟悉主流的Web安全技术,包括SQL注入、XSS、CSRF、一句话木马等安全风险;
- 熟悉国内外主流安全产品和工具,如:Nessus、Nmap、AWVS、Burp、Appscan等;
- 熟悉windows、linux平台渗透测试、后门分析、加固;
- 至少掌握一门编程语言C/C++/Perl/Python/PHP/Go/Java等;
- 熟悉渗透测试的步骤、方法、流程,具有Web安全实战经验;
- 熟悉常见安全攻防技术,对网络安全、系统安全、应用安全有深入的理解和自己的认识;
- 对Web安全整体有深刻理解,具备代码审计和独立漏洞挖掘能力;
- 具有较强的团队意识,高度的责任感,文档、方案能力优秀者优先。
学习路线:
- 2周
Web安全相关概念
熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。
- 通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;
- 阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;
- 《精通脚本黑客》 百度云链接:https://pan.baidu.com/s/1nMI9v-RNXr55paZB8gVVQg 密码:5n2a
- 看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);
- 3周
- 5周
渗透实战操作
掌握渗透的整个阶段并能够独立渗透小型站点。
- 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
- 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
- 思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;
- 研究SQL注入的种类、注入原理、手动注入技巧;
- 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;
- 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;
- 研究Windows/Linux提权的方法和具体使用,可以参考:提权;
- 可以参考: 开源渗透测试脆弱系统;
- 1周
关注安全圈动态
关注安全圈的最新漏洞、安全事件与技术文章。
- 通过SecWiki浏览每日的安全技术文章/事件;
- 通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;
- 通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;
- 养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;
- 多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。
- 关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference。
- 3周
熟悉Windows/Kali Linux
学习Windows/Kali Linux基本命令、常用工具;
- 3周
服务器安全配置
学习服务器环境配置,并能通过思考发现配置存在的安全问题。
- Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;
- Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;
- 远程系统加固,限制用户名和口令登陆,通过iptables限制端口;
- 配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;
- 通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。
- 4周
脚本编程学习
选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习。
- 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,一些Sublime的技巧:SecWiki-Sublime;
- Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;
- 用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;
- PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;
- 熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);
- 了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;
- 3周
源码审计与漏洞分析
能独立分析脚本源码程序并发现安全问题。
- 熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;
- 从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;
- 了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;
- 研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。
- 5周
安全体系设计与开发
能建立自己的安全体系,并能提出一些安全建议或者系统架构。
- 开发一些实用的安全小工具并开源,体现个人实力;
- 建立自己的安全体系,对公司安全有自己的一些认识和见解;
- 提出或者加入大型安全系统的架构或者开发;
- 看自己发展咯~
渗透测试演练系统:
- DVWA (Dam Vulnerable Web Application)是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞。 链接地址:http://www.dvwa.co.uk
- mutillidae是一个免费,开源的Web应用程序,提供专门被允许的安全测试和入侵的Web应用程序。它是由Adrian “Irongeek”Crenshaw和Jeremy “webpwnized” Druin.开发的一款自由和开放源码的Web应用程序。其中包含了丰富的渗透测试项目,如SQL注入、跨站脚本、clickjacking、本地文件包含、远程代码执行等。 链接地址:http://sourceforge.net/projects/mutillidae
SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句。此程序在Austin黑客会议上由Spider Labs发布。 链接地址:https://github.com/SpiderLabs/SQLol
hackxor是由albino开发的一个online黑客游戏,亦可以下载安装完整版进行部署,包括常见的WEB漏洞演练。包含常见的漏洞XSS、CSRF、SQL注入、RCE等。 链接地址:http://sourceforge.net/projects/hackxor
BodgeIt是一个Java编写的脆弱性WEB程序。他包含了XSS、SQL注入、调试代码、CSRF、不安全的对象应用以及程序逻辑上面的一些问题。 链接地址:http://code.google.com/p/bodgeit
Exploit KB / exploit.co.il该程序包含了各种存在漏洞的WEB应用,可以测试各种SQL注入漏洞。此应用程序还包含在BT5里面。 链接地址:http://exploit.co.il/projects/vuln-web-app
WackoPicko是由Adam Doupé.发布的一个脆弱的Web应用程序,用于测试Web应用程序漏洞扫描工具。它包含了命令行注射、sessionid问题、文件包含、参数篡改、sql注入、xss、flash form反射性xss、弱口令扫描等。链接地址:https://github.com/adamdoupe/WackoPicko
- WebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的。这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索。链接地址:http://code.google.com/p/webgoat
- OWASP Hackademic 是由OWASP开发的一个项目,你可以用它来测试各种攻击手法,目前包含了10个有问题的WEB应用程序。 链接地址:https://code.google.com/p/owasp-hackademic-challenges
- XSSeducation是由AJ00200开发的一套专门测试跨站的程序。里面包含了各种场景的测试。链接地址: http://wiki.aj00200.org/wiki/XSSeducation