当前位置:首页 » 网页前端 » web安全学习线路推荐
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web安全学习线路推荐

发布时间: 2022-08-01 19:14:44

1. 网络安全怎么学

你可以把网络安全理解成电商行业、教育行业等其他行业一样,每个行业都有自己的软件研发,网络安全作为一个行业也不例外,不同的是这个行业的研发就是开发与网络安全业务相关的软件。

既然如此,那其他行业通用的岗位在安全行业也是存在的,前端、后端、大数据分析等等,也就是属于上面的第一个分类,与安全业务关系不大的类型。这里我们重点关注下第二种,与安全业务紧密相关的研发岗位。

这个分类下面又可以分为两个子类型:

  • 做安全产品开发,做防

  • 做安全工具开发,做攻

  • 安全行业要研发的产品,主要(但不限于)有下面这些:

  • 防火墙、IDS、IPS

  • WAF(Web网站应用防火墙)

  • 数据库网关

  • NTA(网络流量分析)

  • SIEM(安全事件分析中心、态势感知)

  • 大数据安全分析

  • EDR(终端设备上的安全软件)

  • DLP(数据泄漏防护)

  • 杀毒软件

  • 安全检测沙箱

  • 总结一下,安全研发的产品大部分都是用于检测发现、抵御安全攻击用的,涉及终端侧(PC电脑、手机、网络设备等)、网络侧。

    开发这些产品用到的技术主要以C/C++、Java、Python三大技术栈为主,也有少部分的GoLang、Rust。

    安全研发岗位,相对其他两个方向,对网络安全技术的要求要低一些(只是相对,部分产品的研发对安全技能要求并不低),甚至我见过不少公司的研发对安全一无所知。

2. 网络安全去应该去哪里学习呢。

只要想学习哪里学习都是有效果的。但需要结合自身的一些特点来调整学习方向,这样学习起来会事半功倍,以下推荐3种学习线路,适用于不同的学习人群;

方法1:先学习编程,然后学习Web渗透及工具使用等

适用人群:有一定的代码基础的小伙伴

(1)基础部分

基础部分需要学习以下内容:

(1.1)计算机网络 :

重点学习OSI、TCP/IP模型,网络协议,网络设备工作原理等内容,其他内容快速通读;

【推荐书籍】《网络是怎样连接的_户根勤》一书,简明扼要,浅显易懂,初学者的福音;如果觉得不够专业,可以学习图灵设计丛书的《HTTP权威指南》;

(1.2)Linux系统及命令 :

由于目前市面上的Web服务器7成都是运行在Linux系统之上,如果要学习渗透Web系统,最起码还是要对linux系统非常熟悉,常见的操作命令需要学会;

学习建议:学习常见的10%左右的命令适用于90%的工作场景,和office软件一样,掌握最常用的10%的功能,基本日常使用没什么问题,遇到不会的,再去找相关资料;常见的linux命令也就50-60个,很多小白囫囵吞枣什么命令都学,这样其实根本记不住。

【推荐书籍】Linux Basics for Hackers;

(1.3)Web框架 :

熟悉web框架的内容,前端HTML,JS等脚本语言了解即可,后端PHP语言重点学习,切记不要按照开发的思路去学习语言,php最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍;

数据库:

需要学习sql语法,利用常见的数据库MySQL学习对应的数据库语法,也是一样,SQL的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟大家不是做数据库分析师,不需要学太深;

(2)Web安全

(2.1)Web渗透

掌握OWASP排名靠前的10余种常见的Web漏洞的原理、利用、防御等知识点,然后配以一定的靶场练习即可;有的小白可能会问,去哪里找资料,建议可以直接买一本较为权威的书籍,配合一些网上的免费视频系统学习,然后利用开源的靶场辅助练习即可;

【推荐书籍】白帽子讲Web安全(阿里白帽子黑客大神道哥作品)

【推荐靶场】常见的靶场都可以上github平台搜索,推荐以下靶场DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu等,有些是综合靶场,有些是专门针对某款漏洞的靶场;

(2.2)工具学习

Web渗透阶段还是需要掌握一些必要的工具,工具的学习b站上的视频比较多,挑选一些讲解得不错的视频看看,不要一个工具看很多视频,大多数视频是重复的,且很浪费时间;

主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、mesa、airspoof等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了;

练习差不多了,可以去SRC平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过WAF的,需要针对绕WAF专门去学习,姿势也不是特别多,系统性学习学习,然后多总结经验,更上一层楼;

(2.2)自动化渗透

自动化渗透需要掌握一门语言,且需要熟练运用,可以是任何一门自己已经掌握得很熟悉的语言,都可以,如果没有一门掌握很好的,那我推荐学习python,最主要原因是学起来简单,模块也比较多,写一些脚本和工具非常方便;

虽说不懂自动化渗透不影响入门和就业,但是会影响职业的发展,学习python不需要掌握很多不需要的模块,也不需要开发成千上万行的代码,仅利用它编写一些工具和脚本,少则10几行代码,多则1-200行代码,一般代码量相对开发人员已经少得不能再少了,例如一个精简的域名爬虫代码核心代码就1-20行而已;

几天时间学习一下python的语法,有代码基础的,最快可能一天就可以学习完python的语法,因为语言都是相通的,但是学习语言最快的就是写代码,别无他法;接下来可以开始尝试写一些常见的工具,如爬虫、端口探测、数据包核心内容提取、内网活跃主机扫描等,此类代码网上一搜一大把;然后再写一些POC和EXP脚本,以靶场为练习即可;有的小伙伴可能又要问了,什么是POC和EXP,自己网络去,养成动手的好习惯啦;

(2.3)代码审计

此处内容要求代码能力比较高,因此如果代码能力较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。

但是如果希望在Web渗透上需要走得再远一些,需要精通一门后台开发语言,推荐php,因为后台采用php开发的网站占据最大,当然你还精通python、asp、java等语言,那恭喜你,你已经具备很好的基础了;

代码审计顾名思义,审计别人网站或者系统的源代码,通过审计源代码或者代码环境的方式去审计系统是否存在漏洞(属于白盒测试范畴)

那具体要怎么学习呢?学习的具体内容按照顺序列举如下 :

掌握php一些危险函数和安全配置;

熟悉代码审计的流程和方法;

掌握1-2个代码审计工具,如seay等;

掌握常见的功能审计法;(推荐审计一下AuditDemo,让你产生自信)

常见CMS框架审计(难度大); 代码审计有一本国外的书籍《代码审计:企业级Web代码安全架构》,当然有空的时候可以去翻翻,建议还是在b站上找一套系统介绍的课程去学习;github上找到AuditDemo,下载源码,搭建在本地虚拟机,然后利用工具和审计方法,审计AuditDemo中存在的10个漏洞,难度分布符合正态分布,可以挑战一下;

至于CMS框架审计,可以去一些CMS官方网站,下载一些历史存在漏洞的版本去审计,框架的学习利用官方网站的使用手册即可,如ThinkPHP3.2版本是存在一些漏洞,可以尝试读懂代码;但是切记不要一上来就看代码,因为CMS框架的代码量比较大,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的POC,按照代码审计方法结合工具一起审计框架;其实也没没想象中的那么难,如果你是开发人员转行的,恭喜你,你已经具备代码审计的先天性优势。

可能有人会问:“我代码很差,不学习代码审计行不行?”其实代码审计不是学习网络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择一个阶段,练习得更专业精通一些,如web渗透或者内网渗透,再或者是自动化渗透;

(3)内网安全

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;

如果想就业面更宽一些,技术竞争更强一些,需要再学习内网渗透相关知识;

内网的知识难度稍微偏大一些,这个和目前市面上的学习资料还有靶场有一定的关系;内网主要学习的内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统提权、工具学习、免杀技术、APT等等;

可以购买《内网安全攻防:渗透测试实战指南》,这本书写得还不错,国内为数不多讲内网的书籍,以书籍目录为主线,然后配合工具和靶场去练习即可;

那去哪里可以下载到内网靶场?如果你能力够强,电脑配置高,可以自己利用虚拟机搭建内网环境,一般需要3台以上的虚拟机;你也可以到国外找一些内网靶场使用,有一些需要收费的靶场还可以;

(4)渗透拓展

渗透拓展部分,和具体工作岗位联系也比较紧密,尽量要求掌握,主要有日志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料网络上也不多,也没有多少成型的书籍资料,可通过行业相关的技术群或者行业分享的资料去学习即可,能学到这一步,基本上已经算入门成功,学习日志分析、安全加固、应急响应三部分的知识也相对较为容易。

方法2:先学习Web渗透及工具,然后再学习编程

适用人群:代码能力很弱,或者根本没有什么代码能力,其他基础也相对较差的小伙伴

基础需要打好,再学习Web渗透比如linux系统、计算机网络、一点点的Web框架、数据库还是需要提前掌握;

像php语言、自动化渗透和代码审计部分内容,可以放在最后,当学习完毕前面知识后,也相当入门后,再来学习语言,相对会容易一些;

【优先推荐】方法2,对于小白来说,代码基础通常较弱,很多很多小白会倒在前期学习语言上,所以推荐方法2的学习,先学习web渗透和工具,也比较有意思,容易保持一个高涨的学习动力和热情,具体学习内容我就不说了,请小伙伴们参照方法1即可。

方法3:选择一些适合自己的课程学习

适用人群:需要体系化学习、增强实战能力的小伙伴

具体根据自身条件来讲,如果你自学能力较差,那建议选择课程学习,网上各大平台等都有很多各式各样的课程,是可以更快帮助你迅速入门的,然后再根据自己自身所欠缺的方面,不断去完善和学习,最后达到你所要的优秀水平。

学习书籍推荐如下:

【基础阶段】

Linux Basics for Hackers(中文翻译稿)

Wireshark网络分析(完整扫描版)

精通正则表达式(中文第3版)

图解HTTP 彩色版

[密码学介绍].杨新.中文第二版

网络是怎样连接的_户根勤

[PHP与MySQL程序设计(第4版)].W.Jason.Gilmore


【web渗透阶段】

web安全攻防渗透测试实战指南

白帽子讲Web安全

Web安全深度


【自动化渗透阶段】

Python编程快速上手-让繁琐工作自动化


【代码审计阶段】

代码审计:企业级Web代码安全架构


【内网渗透阶段】

内网安全攻防:渗透测试实战指南

社会工程防范钓鱼欺诈

3. 零基础学web安全,要从哪里开始学html,css,js,php,http是不是要先学这些

  1. 先了解下安全这行的名词,不会在以后觉得措手不及。

  2. 先安装虚拟机,熟悉虚拟机用法操作,试着在虚拟机上搭建网站。

  3. 熟悉iso模型(七层)。其实就是客户机到服务器中间的通信过程

  4. 熟悉常见协议HTTP/HTTPS(SSL)、TCP/IP(这个比较复杂,知道就是一个网络层协议就可)。

  5. 掌握H5、 CSS3、原生JS。可以尝试学jQ ,其实JS搞会已经很花时间了,尤其闭包、对象那块对于没编程基础的有难度,抽象。

  6. 掌握一门脚本语言,jsp、aps.net、php、.net等 (php最易,jsp要会Java)

  7. 学一下Python爬虫框架。信息搜集用

  8. 信息搜集。社工,谷歌hack语法

  9. 漏洞原理,漏洞分析。

  10. 开始了解注入类型

  11. 其他类型,XSS CSRF SSRF 文件上传下载 编辑器

  12. 如何getShell

  13. SqlMap burpsuite waf绕过+ 内网渗透

  14. 最后kali,工具较多,挑选。

  15. 总结web安全这块知识面广,但是涉入层较浅,关键在手法和思想。深入探索还得学习底层信息安全,二进制安全。

4. web前端学习路线

您好,web前端的学习路线分为以下8个阶段:
阶段1.前端核心基础
HTML +_CSS核心、JavaScript基础语法、JavaScript面向对象、JavaScript DOM和BOM编程、jQuery框架

阶段2.HTML5 + CSS3 + 移动端核心
HTML5新特性、Canvas专列、CSS3新特性、CSS3进阶、CSS3实例演练

阶段3.移动端
移动端核心、移动端适配、移动端特效

阶段4.服务器端
服务器端开发、数据库操作、前后端交互核心、微信公众号开发

阶段5.JavaScript高级
JavaScript基础深入剖析、JavaScript面向对象深入讲解、JavaScript异步编程、JavaScript函数式编程、JavaScript设计模式

阶段6.前端必备
性能优化、版本控制工具、模块化、项目构建工具

阶段7.高级框架
React框架基本使用、React框架进阶、Vue框架基本使用、Vue框架进阶、Vue源码分析

阶段8.小程序
原生小程序入门、原生小程序API使用、小程序框架Mpvue
希望对您有帮助。

5. 本人信息安全大一新生,想走web安全的渗透路线,需要完成什么知识储备希望前辈给点建议,谢谢。

作者:向生李
链接:https://www.hu.com/question/21914899/answer/39344435
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Web安全工程师

  • Web安全相关概念
    熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。

  • 通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;

  • 阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;

  • 看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);

  • 3周

    熟悉渗透相关工具
    熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。

  • 了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;

  • 下载无后们版的这些软件进行安装;

  • 学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

  • 待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;

  • 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基本命令、常用工具;

  • 熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

  • 熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

  • 熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

  • 熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》。

  • 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周

    安全体系设计与开发
    能建立自己的安全体系,并能提出一些安全建议或者系统架构。

  • 开发一些实用的安全小工具并开源,体现个人实力;

  • 建立自己的安全体系,对公司安全有自己的一些认识和见解;

  • 提出或者加入大型安全系统的架构或者开发;

  • 看自己发展咯~

6. 零基础WEB前端开发学习路线怎么安排

随着移动互联网的发展,web前端逐渐受到企业的重视,前端开发人员的薪资也水涨船高,越来越多的人看好前端行业的发展,想要转行加入。下面,给大家分享一份web前端学习路线图,希望对初学者有所帮助。Web前端行业的发展,让前端人员能完成比以前更多的职责范围,所以未来前端可以宽口径就业,前景非常好。

对于零基础的人而言,要怎么学习web前端呢?

1、 前端页面重构。主要内容为PC端网站布局、Photoshop 工具及切图、H5移动端网页布局、HTML5+CSS3新特性与交互。学习目标是完成PC端网站布局,可实现响应式布局,一套代码适配 PC 端、移动端、平板设备等。

2、 前后端网页交互。主要内容为JavaScript语法全面进阶、ES6 到 ES10 新语法实践、jQuery 应用及插件使用、设计模式及插件编写、封装JS工具库及Web APIS、AJAX+PHP+MySQL前后端交互、前端工程化与模块化应用以及PC 端全栈开发项目等。学习目标是可以掌握前端工程化工具,如 git、gulp、webpack 等,搭建项目及开发项目。

3、 Node.js + 前端框架。主要内容为Node.js 全面进阶、Koa2+MongoDB搭建服务、Vue.js 框架、React.js 框架、小程序云开发与小程序框架、原生APP与混合APP、数据可视化与桌面应用等。学习目标是掌握桌面应用及可视化大数据,实现复杂数据展示类项目,能够独立完成前后台相关功能,胜任HTML5全栈开发工程师职位。很多学习web前端的朋友都希望在学成后能找到一份满意的工作,所以我们在学习过程中一定要注意实战经验的积累,如果你所学的东西对企业没有用,那你所做的一切都是无用功

7. web安全要学什么

Web安全的范围实在太大,哪些先学,哪些后学,如果没有系统的路线会降低大家效率,对于刚入门的同学们来说简直就是“噩梦”。所以,这篇类似学习路线的文章,希望可以帮助刚入门的萌新们少走弯路。(文末附学习资料及工具领取)

首先我们来看看企业对Web安全工程师的岗位招聘需求是什么?

1职位描述

  • 对公司各类系统进行安全加固;

  • 对公司网站、业务系统进行安全评估测试(黑盒、白盒测试)

  • 对公司安全事件进行响应、清理后门、根据日志分析攻击途径

  • 安全技术研究,包括安全防范技术、黑客技术等;

  • 跟踪最新漏洞信息,进行业务产品的安全检查。

  • 2岗位要求

  • 熟悉Web渗透测试方法和攻防技术,包括SQL注入、XSS跨站、CSRF伪造请求、命令执行等OWSP TOP10 安全漏洞与防御;

  • 熟悉Linux、Windows不同平台的渗透测试,对网络安全、系统安全、应用安全有深入理解和自己的认识;

  • 熟悉国内外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;

  • 对Web安全整体有深刻理解,有一定漏洞分析和挖掘能力;

  • 根据岗位技能需求,再来制定我们的学习路径,如下:

    一、Web安全学习路径


    01 HTTP基础

    只有搞明白Web是什么,我们才能对Web安全进行深入研究,所以你必须了解HTTP,了解了HTTP,你就会明白安全术语的“输入输出”。黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。关于HTTP,你必须要弄明白以下知识:

    HTTP/HTTPS特点、工作流程

    HTTP协议(请求篇、响应篇)

    了解HTML、Javascript

    Get/Post区别

    Cookie/Session是什么?

    02 了解如下专业术语的意思

    Webshell
    菜刀
    0day
    SQL注入
    上传漏洞
    XSS
    CSRF
    一句话木马

    ......

    03 专业黑客工具使用

    熟悉如何渗透测试安全工具,掌握这些工具能大大提高你在工作的中的效率。

    Vmware安装

    Windows/kali虚拟机安装

    Phpstudy、LAMP环境搭建漏洞靶场

    Java、Python环境安装

    子域名工具 Sublist3r

    Sqlmap
    Burpsuite
    Nmap
    W3af
    Nessus
    Appscan
    AWVS

    04 XSS

    要研究 XSS 首先了解同源策略 ,Javascript 也要好好学习一下 ,以及HTML实体 HTML实体的10 或16进制还有Javascript 的8进制和16进制编码,最终掌握以下几种类型的XSS:

    反射型 XSS:可用于钓鱼、引流、配合其他漏洞,如 CSRF 等。

    存储型 XSS:攻击范围广,流量传播大,可配合其他漏洞。

    DOM 型 XSS:配合,长度大小不受限制 。

    05 SQL注入

    所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。你需要了解以下知识:

    SQL 注入漏洞原理
    SQL 注入漏洞对于数据安全的影响
    SQL 注入漏洞的方法
    常见数据库的 SQL 查询语法
    MSSQL,MYSQL,ORACLE 数据库的注入方法
    SQL 注入漏洞的类型:数字型注入 、字符型注入、搜索注入 、盲注(sleep注入) 、Sqlmap使用、宽字节注入

    SQL 注入漏洞修复和防范方法
    一些 SQL 注入漏洞检测工具的使用方法

    06 文件上传漏洞

    了解下开源编辑器上传都有哪些漏洞,如何绕过系统检测上传一句话木马、WAF如何查杀Webshell,你必须要掌握的一些技能点:

    1.客户端检测绕过(JS 检测)

    2.服务器检测绕过(目录路径检测)

    3.黑名单检测

    4.危险解析绕过攻击

    5..htaccess 文件

    6.解析调用/漏洞绕过

    7.白名单检测

    8.解析调用/漏洞绕过

    9.服务端检测绕过-文件内容检测

    10.Apache 解析漏洞

    11.IIS 解析漏洞

    12.Nginx 解析漏洞

    07 文件包含漏洞

    去学习下
    include() include_once() require() require_once() fopen() readfile()
    这些php函数是如何产生文件包含漏洞, 本地包含与远程包含的区别,以及利用文件包含时的一些技巧如:截断 /伪url/超长字符截断等 。

    08 命令执行漏洞

    PHP代码中常见的代码执行函数有:
    eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
    了解这些函数的作用然后些搞清楚如何造成的代码执行漏洞。

    09 CSRF 跨站点请求

    为什么会造成CSRF,GET型与POST型CSRF 的区别, 如何防御使用 Token防止CSRF?

    010 逻辑漏洞

    了解以下几类逻辑漏洞原理、危害及学会利用这几类漏洞:

    信息轰炸、支付逻辑漏洞、任意密码修改、越权访问、条件竞争、任意注册、任意登录、顺序执行缺陷、URL跳转漏洞.

    011 XEE(XML外部实体注入)

    当允许XML引入外部实体时,通过构造恶意内容,可以导致文件读取、命令执行、内网探测等危害。

    012 SSRF

    了解SSRF的原理,以及SSRF的危害。
    SSRF能做什么?当我们在进行Web渗透的时候是无法访问目标的内部网络的,那么这个时候就用到了SSRF漏洞,利用外网存在SSRF的Web站点可以获取如下信息。
    1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
    2.攻击运行在内网或本地的应用程序(比如溢出);
    3.对内网Web应用进行指纹识别,通过访问默认文件实现;
    4.攻击内外网的Web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
    5.利用file协议读取本地文件等。

    如果上述漏洞原理掌握的都差不多那么你就算入门Web安全了。

    如果看了上面你还不知道具体如何学习?可参考合天网安实验室Web安全工程师岗位培养路径学习:网页链接

8. JavaWeb学习路线

JavaWeb核心框架

  1. 持久层框架:Hibernate、iBATIS

  2. 表现层框架:Struts1、Struts2

  3. 业务层框架:Spring

  4. java学习路线图:

    1、Hibernate:ORM

    Hibernate是一个Java ORM开发框架

    ORM是Object Relation Mapping的缩写,顾名思义,即对象关系映射。

    ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中一种常用ORM框架,另一个现在流行的ORM框架是Mybatis。

    为什么需要ORM框架?

    简单地理解,通过Java进行数据库访问的正常流程可以分为以下几步:

    准备好SQL语句

    调用JDBC的API传入SQL语句,设置参数

    解析JDBC返回的结果

    这个过程实际上非常麻烦,比如:

    在Java代码中拼接SQL非常麻烦,而且易于出错

    JDBC的代码调用有很多重复性的代码

    从JDBC返回的结果转换成领域模型的Java对象很繁琐

    而使用ORM框架,则可以让我们用面向对象的方式来操作数据库,比如通过一个简单的函数调用就完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化地帮我们执行。对,类似MVC框架,ORM框架会帮你处理好相关的繁琐事情!

    2. Struts:MVC

    Struts是一个Java Web MVC开发框架。MVC早在1978年就作为Smalltalk的一种设计模式被提出来了,引用到Web应用中来时:

    模型Model用于封装与业务逻辑相关的数据和数据处理方法

    视图View是数据的HTML展现

    控制器Controller负责响应请求,协调Model和View

    Model,View和Controller的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

    MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码。

    3.Spring:DI/AOP

    Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架。

    其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI和AOP能够让代码更加简单,具有良好的松耦合特性和可测试性,极大地简化开发。理解这两者是使用Spring框架的基础。

    Spring框架对Java企业应用开发中的各类通用问题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如接下来要说的MVC框架、ORM框架)方便得组合到一起(这也得益于依赖注入和面向切面编程带来的强大功能)。Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的开发框架,比如你耳熟能详(如果你对这个问题感兴趣的话)的Spring MVC,Spring Data。

    Java曾经有另外一个类似的一站式框架粘合框架Seam,这是Hibernate的作者、脾气火爆的大神Gavin King的作品,核心是基于依赖注入来黏合JSF和EJB,不过推出时Spring已经大杀四方,Seam基本已经退出历史舞台了。记得Seam提过一个我认为很不错的概念:“双向注入”,类似现在前端框架中的双向绑定,当时来说还是很超前的。

9. 求推荐一个web前端的学习路线

初级前端
主要学习三个部分:HTML,CSS,JavaScrip
(1)html + css部分
这部分特别简单,到网上搜资料,书籍视频非常多。css中盒子模型,流动,block,inline,层叠,样式优先级等这些自学起来也是非常容易。最后再深入了解下浏览器差异性,ie9以下兼容简单了解就行了,ie9以下浏览器被淘汰掉是趋势,低版本没必要浪费大量时间去学习兼容主流浏览器,google chrome浏览器、firefox浏览器、safari浏览器、opera浏览器即可。浏览器差异内容很多,建议在实践中多多积累。
(2)JavaScript部分
基础学习:难点,也是重点,要学的内容实在很多,如果没有其他编程语言的基础的话,学起来可能要费些力,有很多比较抽象的概念,必须要深入理解,比如闭包、原型、面向对象、封装等,要理解透彻。看书是必不可少的,找一本优秀的js书从头到尾,反复研究学习,第一遍可以快速翻阅,大体知道了解概念即可,第二三遍就需要深入学习了。边学边练,实践出真知。
jQuery学习:这些基础知识掌握好之后,还需要学jQuery,这是一个非常优秀的Javascript库,大型开发必备。它简化了Javascript的复杂操作,消除了Javascript跨平台兼容问题,提供了大量实用方法,有良好的文档和帮助手册,是一个非常成熟的Javascript库。
进阶学习:
有了以上知识,对于大多数小型网站,你应该已经可以写出能够工作的代码了。但要想成为更专业的前端,你还需继续努力。更高的要求大概还有四方面:易维护,可测试,高性能,低流量(移动端)。