web入门参考

前景

简单提⼀下web安全的前景吧

  • 国家⽅⾯,⽬前是⼤⼒⽀持⽹络空间安全的发展的,专业发展前景⾃然没得说

  • ⽬前就业⽅⾯,信安还是很有优势的,拿本实验室举例,多数学⻓在⼤⼆就已⼊职腾讯、 字节等BAT,或⻓亭、360等安全⼤⼚(诱惑.jpg)

  • ⼯资⽅⾯,既然市场紧缺,⼯资⾃然不会低,技术够好,本科毕业轻松 15k+ (不是吹 的)。

  • ⼯时⽅⾯,⽐开发哥哥们还是要轻松的 (狗头.jpg)

##⼊⻔需要学什么?

###基本概念

  • 学习⼀些基本概念,⽐如什么是⽹站?什么是前端?什么是后端?什么⼜是漏洞?

  • 有编程功底肯定很好,如果是没有计算机基础的⼩伙伴也不要灰⼼,许多小伙伴都是0基础入门的,简单熟悉键盘及计算机的基础操作,也能直接开始学web安全。

  • 了解计算机⽹络基础,看不懂也没关系,但⾄少得了解 http 协议、TCP/IP协议簇等相关 知识

  • 了解什么是CTF

语言

###html

HTML 教程 | 菜鸟教程 (runoob.com)学习到表单部分即可,html部分暂时不必深入,看得懂源码就行。

###php

web入门前期很重要的一门语言,前期学习大部分漏洞源码都是php写的。这一部分学习到面对对象部分

[PHP 教程 | 菜鸟教程 (runoob.com)

学习php的时候要需要一个编译器,建议下载phpstrom。资源和破解方法传到了群文件里。(虽然有在线编译器,但是没有自己下载的好用,这是长期要用的建议学习php的时候就把他弄好,而且这也是锻炼搭建环境能力)

python

python主要是用来写脚本,菜鸟教程上学习基础语法后,就看可以尝试去写一些脚本,要多写多练

sql

sql注入的基础,学会增删改查等以及一些常用函数,如sleep(),updatexml(),substr(),length(),ascii()……很多,对于这些函数的了解,不用刻意去单独学习,配合题目服用最佳

###javascript

推荐在菜⻦教程进⾏学习,不过⼩伙伴们也可以先咕着,等以后学习 xss 漏洞或 node.js 时再 回来重点学习

###bash(Linux基础)

先学习常⽤命令即可,具体后⾯再学

环境搭建

学习web的时候需要要用到许多工具,所以搭建环境是很重要的能力。才开始的时候会踩许多坑,但这是必须经历的,要慢慢锻炼自己搭建环境的能力,才开始可能一个环境可能就需要1-2天,这些都正常。搭建各种环境的方法网上都有很多资料,要善于使用浏览器。踩坑,遇到问题的时候可以多在群里面问,也可以私聊学长。这里列一下初期需要的工具

  • Edge , Chrome , Firfox (陪伴你们的最多的就是浏览器,这三款都比较好用,建议全下载。最重要的就是搜索引擎,推荐使用google引擎,使用goole需要一些手段,我用的是Clash for windows,8块钱一个月,比较划算)
  • phptorm(php编译器)
  • pycharm(python编译器)
  • phpstudy(各种本地靶场搭建,测试都需要它,很重要)
  • Burpsuite(很重要,经常使用,要熟悉)
  • sqlmap (sql注入一把梭)
  • 蚁剑,菜刀 功能都差不多(个人建议使用蚁剑)
  • Hackbar (浏览器插件)
  • VMvare:虚拟机软件,⼩伙伴们安装这个的时候也可以顺便把 kali Linux 安装了哟
  • 御剑,dirscan (目录扫描软件,喜欢哪个用哪个)
  • final shell (vps管理软件)

工具不仅仅限于上面这些,还有很多,需要慢慢学习发掘

基础漏洞

注:

  • 所有漏洞学习建议都做题练习,这样能够更好的理解。前期做题都需要看wp,多理解。若是照着wp做不出来的可以暂时放放,或者问学长学姐
  • 源码分析:分析源码的时候重点关注关键代码,例如:关注sqli-labs每到题目差距不是很大,多分析点,会越来越快。在这之前建议先了解什么是正则,当然,源码里遇到在看也是可以的
  • 越到后面介绍的少,因为随着你们慢慢学习,自己信息收集能力会越来越强,学到后面的也应该知道要注意哪些地方了。

###Sql注入

先基础原理,sql语句,然后再学习各种注入方法,

前期学习:

  • 联合注入
  • 盲注 (盲注常常要涉及到python脚本,前期开始时可以先用别人写好的脚本学习理解下,过程,原理。学习python后一定要自己写几个试试)
  • 报错注入

练习: sqli-labs (注意:sqli-labs只支持php5版本,不支持高版本。搭建环境的时候要注意这一点,很容易踩坑)

要求:分析源码,想弄好需要需要很长时间。这里要求分析下每道题目的源码,想一想漏洞是怎么产生的,前期的话可能比较困难,会有很多不认识的函数,但都是可以通过浏览器查询到。而且这也可以锻炼你们代码审计的能力,花时间在上面是值得的!

注意:注入点是如何闭合的,禁用了哪些东西,怎么绕过,为什么要用此方法进行注入。学习sql注入的时候,不能仅仅只是Ctrl+c/v,爆出数据,要思考为什么要用这种注入手段?其他注入手法行不行?该注入方法的前提条件是什么?分析sql语句里的各个函数的作用是什么?同时也要想一想如果该方法被禁用了有什么方法可以绕过(其他漏洞学习也应这样思考)

除此之外,sql注入的类型很多,诸如:宽字节注入,二次注入,堆叠注入,Quine注入,dnslog注入等这些手段后面还要学习。sql注入的种类很多,要多了解各种注入手段,以及绕waf的方法。当然前期学习先把基础搞好,后面还要花时间来学的。

###文件上传

了解原理,文件上传漏洞主要是各种绕waf的方法。这里要求本地搭建upload-abs靶场练习。同样要求分析源码。当你打通靶场,前期要求的也差不多了。

前期学习:

  • 一句话木马(要弄清函数的意思,以及一句话木马的多种写法)

  • 了解什么是黑名单,什么是白名单

  • 绕过对文件后缀名的检查 ,如:双写绕过,大小写绕过,00截断,使用相同作用的文件后缀名替换(如:php3、php4、php5、phtml)等

  • 图片马

  • 绕过前端验证

  • 绕过后端验证

  • 利用配置文件(.uer.ini,.htacess等)

这里列出的种类,在uploads-labs里面都有例题,建议全部练习

要求:分析源码

注意:做不出来的可以暂时跳过,后面再练习,或者问学长

文件包含

了解原理

前期学习:

  • 本地包含
  • 远程包含
  • php伪协议
  • 文件包含配合文件上传使用

远程命令/代码执⾏

了解原理,要掌握各种能够代码/命令执行的函数。这一部分常常需要使用到一些linux命令,

前期学习:

  • 区分代码执行和命令执行

  • linux常用命令(配合kali食用,效果更加)

  • 学会使用通配符

  • 绕过方法

php反序列化

前期学习的时候理解可能比较难,但是这是很重要要的一部分,要熟练掌握各种魔术方法,了解原理后,可以学习一些phar反序列,session反序列化等。多做题,能更好理解

前期要求:

  • php学习到面对对象部分(多理解)

  • 掌握常用的魔术方法,熟记他的触发条件。(不能仅仅是知道触发条件,要落实到代码上)

  • 多做题,ctfshow,buuctf题目都能找到相对简单题目练习。这一部分只有多做题,多分析代码才能理解

  • 学习pop链,尝试写出攻击exp

Xss

前期学习:

  • 学习javascript基础

  • 反射型

  • 储存型

  • DOM型

SSRF

学习漏洞原理,以及php中能够触发SSRF的相关函数,ssrf也常用到许多伪协议

CSRF

理解漏洞原理,触发条件,防御措施

注意:学习xss,ssrf,csrf的时候需要分清他们之间的区别。可以本地搭建pikachu靶场练习

SSTI

了解漏洞原理,常见的模板引擎及注入漏洞

前期

  • flask/jinja

XXE

学习漏洞原理,了解XML的基础知识,语法规则。了解漏洞的可以造成哪些危害,防御措施等等

参考学习路线

这里根据个人学习经验,提供一个入门学习路线仅供参考:

  • 1,先学习makedown,学会用Typora做笔记,做笔记很关键。这个很简单,速成
  • 2,安装Burpsuite,先学会简单的抓包放包,了解此工具是用来干什么的。学习http协议,重点学习get,post方法,理解他们的区别(这里建议简单分析下请求包各个字段的作用,重点注意cookie,顺便了解什么是session,token)
  • 3,学习html,学到表单部分。不用记函数,看得懂就行。这里重点注意下表单,文件上传那会用到
  • 4,学习php,个人建议先学到菜鸟上函数部分。
  • 5,安装phpstudy,学习sqli-labs的搭建
  • 6,学习sql注入,这里先安装一个hackerbar插件(学习内容已经介绍了,不在重复,下同)
  • 7,学习文件上传
  • 8,学习文件包含,注意文件上传于文件包含的结合使用
  • 9,学习php反序列化(这里要先接着把php在菜鸟学到面对对象部分,要深入理解)
  • 10,学习代码/命令执行

。。。。学到后面大概自己也知道该学什么东西了

  • 11,学习python后可以学习ssti

  • 12,学习javascript后可以学习xss。xss,csrf,ssrf这几部分一起可以看

    学习过程中,做题会遇到要求使用一些工具。遇到了在装吧。

CTF平台

  • CTFshow (入门学习比较不错,但是web入门模块需要付费,建议找几个友友一起买相对划算,而且认识更多一起学习朋友也是有很多好处的)

  • CTFHUB

  • 攻防世界

  • bugku

  • buuctf(web版块对⼊⻔⽽⾔难度稍⼤,(但是可以ctrlF直接搜“新⽣”,搜出来的题⼀般都可以做)但basic版块会很适合⼊⻔,重点安利,宝藏不解释)

  • NSSCTF

学习网站

freebuff,安全客,i春秋,先知社区,seebug,ctf-wiki,csdn(虽说csdn上鱼龙混杂,但是有些时候确实能解决问题)

额外任务

  • 学习Markdown,养成以Markdown做笔记的习惯。(Markdown做笔记软件推荐 Typora,可百度搜索直接下载安装,群文件有白嫖方法)

  • 购买vps(腾讯云,阿里云都可,新人比较便宜),建议搭建个人博客,分享学习笔记,(搭建博客也可以白嫖github,但是vps不仅仅用于搭建博客)

提问

跨入新的领域肯定会有很多疑问,所以学会问问题是很关键的,善于运用浏览器,有不理解的都以问学长

  • 有问题先百度,这也是锻炼信息收集的能力(建议谷歌引擎)
  • 在学习上有困难的,学习方向迷茫都可以加学长学姐们提问,我们可以给你提供参考建议,不要害怕提问,学长学姐们都是很热情的。比如web:QQ:1875428315(狗头.jpg)

4283156A8F6D114A321EE8C2DF17AFBA819063

FAQ

###招新时间和流程?

群里会通知

招新人数有限制吗?

没有,只要达到要求,都可加入,我们实验室很大,能容纳每一个友友

看视频学习好还是看文章学习好?

个人感觉看视频的话进度很慢,但是如果遇到看文章不理解的地方,也可以看看视频,看视频比较好理解。根据个人情况权衡吧

C语言对web手重要么?

C语言是必修课,对web手要求会低一点,但很多语言是基于C语言的,到后面想要深入了解一些知识(比如php底层,都会涉及到C),所以说,C语言上课还是要好好听讲,最起码不能挂科!

没有任何基础能加入吗?

能!,我当时也在担心这个问题。都觉得没有基础加不了。要知道很多同学都是没有相关专业基础的,所以不用担心这个问题,我们会给出学习路径让你们学习一段时间,根据你们的学习情况来选拔(但是依然要知道一点有计算机基础的同学肯定学起来比没基础的轻松,快速,所以要多花时间来学习)

###web⼿的成⻓路线,以及毕业是否考研?

关于web⼿是否考研及成⻓路线,在知乎有⼀个⾼赞回答,我觉得说得挺好 [传送⻔](网络安全是一个好的专业吗? - 知乎 (zhihu.com))

最后

给出一些学习经验

  • 踩坑,碰壁:其实我们基本都要靠自学,其中肯定会遇到很多困难,各种踩坑都是常事,道阻且长。不用担心,这些坑都会变成经验,学到后面会顺畅很多
  • 稳固基础,基础很重要,上面列出的知识点包含很多东西,不是要你们速成,更看重的是对基础的掌握。
  • 保持谦逊,热爱学习!要是喜欢web安全,那你学习起来肯定会很轻松,从中找到成就感,让自己的付出能得到收获
  • 可以加一些安全圈的群,认识更多的人,一起学习,偶尔水一下群也是挺好玩的
  • 关注一些大佬博客,如P神,Y4tacker…..很多,大佬们写的东西都挺好,值得参考
  • 学不动的时候想想自己的目标,让自己有学习的动力(偶尔打下游戏放松也是可以的,当然要把握好学习和娱乐的平衡,毕竟以后恰饭还得靠技术)
  • 多和学长交流。多陪陪单身学长(狗头.jpg)

加油学习,道格安全研究实验室欢迎每一位心怀正义,谦逊,且热爱学习的同学!