作为一个安全从业者,我知道Web安全的概念太宽泛,对它的了解还不够,需要继续学习。
但是,我不希望新人走弯路,所以今天写关于web安全的内容,希望对第一次遇到web安全问题的同学有所帮助!
首先我把自己整理出来的web安全自学路线贴出来。如果有必要,我可以保存它:
如果你真的想自学web安全知识,建议你看一下下面的学习路线图,具体每个知识点要学多长时间,怎么学。自学时间半年左右,个人测试有效(文末有惊喜):

1、Web安全相关概念(2周)熟悉基本概念(SQL注入、上传、XSS、CSRF、一词木马等。).Google/sec wiki;通过关键词(SQL注入、上传、XSS、CSRF、一言堂木马等。);《脚本黑客阅读掌握》老错了,不过入门还是可以的。看一些渗透笔记/视频,了解渗透的全过程,可以Google(渗透笔记,渗透过程,入侵过程等。);2、熟悉渗透相关工具(3周)熟悉AWVS,sqlmap,Burp,Nessus,chopper,nmap,Appscan等相关工具的使用。要了解这类工具的用途和使用场景,先用软件名Google/sec wiki;;下载这些没有后门版本的软件进行安装;学习并使用它。具体教材可以在SecWiki上搜索,比如Brup的教程,sqlmap;这些常用软件都学会了安装sonic startup作为渗透工具箱;3、渗透实战操作(5周)掌握渗透全阶段,能够独立渗透小站点。在网上寻找渗透视频,思考其思路和原理,关键词(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等。);自己找场地/搭建测试环境进行测试,记得隐藏自己;关于渗透的思考主要分为几个阶段,每个阶段需要做哪些工作,比如这个:PTES渗透测试实施标准;学习SQL注入的种类、注射原理和手工注射技巧;研究文件上传原理,如何截断,双后缀恶搞(IIS,PHP),漏洞分析(IIS,Nignix,Apache)等。参考:上传攻击框架;学习XSS形成的原理和类型,具体学习方法可以是Google/SecWiki,可以参考:XSS;要研究Windows/Linux提升力的方法和具体使用,可以参考:提升力;参考:开源渗透测试脆弱系统;4、关注安全圈动态(1周)关注安全圈最新漏洞、安全事件、技术文章。通过SecWiki浏览每日安全技术文章/事件;通过微博/twitter关注安全圈的员工(遇到大牛的关注或者朋友的果断关注),每天抽时间刷一刷;通过feedly/鲜果订阅国内外安全技术博客(不要局限于国内,平时更注重积累)。如果没有提要源,可以看看SecWiki的聚合专栏。养成每天主动提交安全技术文章并链接到SecWiki进行积累的习惯;多关注一下最新的漏洞列表,推荐几个:exploit-db,CVE中文数据库,Wooyun等,并练习所有公开的漏洞。关注国内外安全会议的议题或视频,推荐SecWiki-Conference。5、熟悉Windows/Kali Linux(3周)学习Windows/Kali Linux的基本命令和常用工具;熟悉Windows下常见的cmd命令,如ipconfig、nslookup、tracert、net、tasklist、taskkill等。熟悉Linux下的常用命令,如ifconfig、LS、CP、MV、VI、WGET、service、sudo等。熟悉kalilinux系统下的常用工具,可以参考Secwiki,用Kali Linux进行Web测量测试,用Kali进行黑客攻击等。熟悉metasploit工具,可以参考SecWiki和Metasploit渗透测试指南。6、服务器安全配置(3周)学习服务器环境配置,通过思考发现配置的安全问题。Windows2003/2008环境下的IIS配置,特别注意配置安全和操作权限,可以参考:sec wiki-configuration;Linux环境下LAMP的安全配置主要考虑运行权限、跨目录、文件夹权限等。可以参考:sec wiki-configuration;远程安全加固,限制用户名密码登录,通过iptables限制端口;配置软件Waf加强系统安全性,在服务器上配置mod_security等系统。参见sec wiki-ModSecurity;。通过Nessus软件检测配置环境的安全性,发现未知的安全威胁。7、脚本编程学习(4周)选择一种脚本语言Perl/Python/PHP/Go/Java来学习通用库的编程。搭建开发环境选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,Sublime的一些技巧:sec wiki-Sublime;;Python编程学习,学习内容包括:语法、正则、文件、网络、多线程等常用库,推荐Python核心编程,不要全看;用Python写漏洞的exp,然后写一个简单的网络爬虫,见SecWiki- crawler,视频;学习基本的PHP语法,写一个简单的博客系统。见PHP和MySQL编程(第四版)和视频。熟悉MVC框架并尝试学习一个PHP框架或Python框架(可选);要了解Bootstrap或CSS的布局,请参考:sec wiki-Bootstrap;8、源码审计与漏洞分析(3周)能够独立分析脚本源程序,发现安全问题。熟悉源码审计的动态和静态方法,知道如何分析程序,见sec wiki-Audit;从Wooyun找开源程序的漏洞来分析,自己试着分析;了解Web漏洞产生的原因,然后通过关键词进行搜索分析。参见SecWiki-代码审计和高级PHP应用程序漏洞审计技术。研究Web漏洞的形成原理以及如何从源头层面规避此类漏洞,并整理成清单。9、安全体系设计与开发(5周)能够建立自己的安全体系,提出一些安全建议或者系统架构。开发一些实用的安全小工具,开源体现个人实力;建立自己的安全体系,对公司安全有一定的了解和看法;或提出加入大型安防系统的架构或开发;看你自己的发展吧~最后整理好自己的知识框架,知道如何学习之后,接下来就是填充框架了。
这个时候,我们也可以有很多选择,比如CSDN,比如知乎,还有哔哩哔哩,那里有很多人在分享自己的学习资料。但是我觉得这里有一个很大的问题就是不连贯,不完善。免费分享的教程大部分都是一篇一篇的,前言不搭后语,学完就瞎了。这是我自学后的亲身经历。
如果你真的想做自学,我可以把我整理收集的这些教程分享给你。它们不仅包括web安全,还包括渗透测试等等,包括电子书、面试问题、pdf文档、视频和相关的课件笔记。我已经研究过了。如果有需要,我可以转发这篇文章,然后在评论区告诉我。