良心整理丨小白学习Web安全,该如何入门?

​​​​​​前言

开始前的思考首先你得了解Web零基础web安全学习计划2.1 HTTP协议请求 (TIME: 一周)2.2.危险的HTTP头参数 (TIME: 一周)2.3 专业术语 (TIME: 一天)2.4 专业黑客工具使用 (TIME: 10天)2.5 脚本语言+代码审计入门 (TIME: 10天)2.6 Sql注射 (TIME: 3天)2.7 CSRF 跨站点请求 (TIME: 3天)2.8 XSS (TIME: 7天)2.9 文件上传漏洞 (TIME: 7天)2.10 php-远程/本地 文件包含 (TIME: 10天)2.11 php-命令执行 (TIME: 3天)2.12 ssrf (TIME: 3天)2.13 逻辑漏洞 (TIME: 7天)1.订金额任意修改--购物站经常出现 2.验证码回传 3.越权操作,其主要原因是没对ID参数做cookie验证导致。4.找回密码存在设计缺陷 5.接口无限制枚举2.14 xee(XML外部实体注入) (TIME: 5天)2.15 XPath注入 (TIME: 5天)2.16 服务器解析漏洞# 加分项目-渗透信息搜集 (TIME: 15天)#整理笔记

开始前的思考

1. 我真的喜欢搞安全吗?

2. 我想通过安全赚钱钱?

3. 我不知道做什么就是随便?

4. 一辈子做安全吗?

这些不想清楚会对你以后的发展很不利,与其盲目的学习web安全,不如先做一个长远的计划。否则在我看来都是浪费时间。

首先你得了解Web

Web分为好几层,一图胜千言:

图片

事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。

这样看来,Web有八层(如果把浏览器也算进去,就九层!每层都有几十种主流组件!!!)这该怎么办?

一法通则万法通,这是横向的层,纵向就是数据流!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。

零基础web安全学习计划

2.1 HTTP协议请求 (TIME: 一周)

对以下下知识点做了解学习
 http协议请求 
 http状态码              
 post / get 区别

可以使用Chrome浏览器中F12查看“Network”标签中的HTTP请求响应,来了解HTTP协议请求.

图片

2.2.危险的HTTP头参数 (TIME: 一周)

HTTP请求时需对一些必要的参数做一些了解,这些参数也会造成很严重的安全安全问题如下:

user_agent 
X-Forwarded-For
Referer
clien_ip
Cookie

2.3 专业术语 (TIME: 一天)

了解如下专业术语的意思

  • webshell

  • 菜刀

  • 0day

  • SQL注入

  • 上传漏洞

  • XSS

  • CSRF

  • 一句话木马

图片

2.4 专业黑客工具使用 (TIME: 10天)

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

sqlmap     
Burpsuite  
nmap      
w3af       
nessus  
Appscan 
AWVS

2.5 脚本语言+代码审计入门 (TIME: 10天)

推荐php不用学的太灵通,我们又不是搞开发,了解基本语法和一些危险函数即可如:open exec 等函数会造成什么漏洞,了解了php中的危险函数会造成那些漏洞可举一反三套用到别的脚本当中 asp aspx java这些语言的危险函数可能只是写法不一样功能是相同的,了解这些后就可以来做一些web漏洞的代码审计了.

php入门学习  
php代码审计

2.6 Sql注射 (TIME: 3天)

** 零基础就先用最有效的办法注入推荐注入工具 sqlmap如何使用?**

如果你不想只停留在使用工具的层面,那么你需要学习一下数据库,mysql sqlserver 随便先学一个前期学会 selsct 就行,php尝试自己写一个查询数据库的脚本来了解手工sql注入的原理,这样进步会很快,如果想深入可以把各种数据库注入都温习一边。关于需要掌握的技术点:

1\. 数字型注入 
2.字符型注入 
3.搜索注入 
4.盲注(sleep注入) 
5.sqlmap使用 
6.宽字节注入
mysql入门  
Sqlmap     
sleep原理    
盲注sleep函数执行sql注入攻击

2.7 CSRF 跨站点请求 (TIME: 3天)

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

2.8 XSS (TIME: 7天)

要研究xss首先了解同源策略 ,Javascript 也要好好学习一下 ,以及html实体 html实体的10 或16进制还有javascript 的8进制和16进制编码,

xss     
进制编码  
同源策略

2.9 文件上传漏洞 (TIME: 7天)

了解下开源编辑器上传都有那些漏洞,如何绕过系统检测上传一句话木马

上传绕过

2.10 php-远程/本地 文件包含 (TIME: 10天)

去学习下include() include_once() require() require_once() fopen() readfile()这些php函数是如何产生文件包含漏洞, 本地包含与远程包含的区别。

以及利用文件包含时的一些技巧如:截断 /伪url/超长字符截断 等 。

2.11 php-命令执行 (TIME: 3天)

PHP代码中常见的代码执行函数有:

eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。

了解这些函数的作用然后些搞清楚如何造成的代码执行漏洞。

2.12 ssrf (TIME: 3天)

1\了解ssrf的原理,以及ssrf的危害。

2\ssrf能做什么。

当我们在进行web渗透的时候是无法访问目标的内部网络的,那么这个时候就用到了ssrf漏洞,利用外网存在ssrf的web站点可以获取如下信息。

1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

2.攻击运行在内网或本地的应用程序(比如溢出);

3.对内网web应用进行指纹识别,通过访问默认文件实现;

4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

5.利用file协议读取本地文件等。

2.13 逻辑漏洞 (TIME: 7天)

常见的逻辑漏洞一般都会在如下地方出现

1.订金额任意修改--购物站经常出现 2.验证码回传 3.越权操作,其主要原因是没对ID参数做cookie验证导致。4.找回密码存在设计缺陷 5.接口无限制枚举

2.14 xee(XML外部实体注入) (TIME: 5天)

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

2.15 XPath注入 (TIME: 5天)

path注入攻击本质上和SQL注入攻击是类似的,都是输入一些恶意的查询等代码字符串,从而对网站进行攻击

2.16 服务器解析漏洞

Iis 解析漏洞  
nginx 解析漏洞 
tomcat 后台上传漏洞
jboss 上传漏洞
如果上述漏洞原理掌握的都差不多那么你就可以去找个工作实践一下了.

# 加分项目-渗透信息搜集 (TIME: 15天)#

子域名搜集 利用DNS域名传送漏洞搜集二级域名

Liunx测试命令如下:

Dns服务器 1.1.1.1  测试域名http://wooyun.org
dig @1.1.1.1 http://sechook.org axfr
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=http://wooyun.org -p 53 -Pn 1.1.1

实例查询苏宁DNS服务器

D:\deep>nslookup
默认服务器:  localhost
Address:  10.11.0.1
> set type=ns
> http://suning.com
服务器:  localhost
Address:  10.11.0.1
非权威应答:
http://suning.com      nameserver = http://lns1.zdnscloud.info
http://suning.com      nameserver = http://gns2.zdnscloud.net.cn
http://suning.com      nameserver = lns2.zdnscloud.biz
http://suning.com      nameserver = http://gns1.zdnscloud.net
>

查询苏宁 IP

C:\Users\jack>nslookup http://suning.com
服务器:  localhost
Address:  10.11.0.1
非权威应答:
名称:    http://suning.xdwscache.ourwebcdn.com
Addresses: 203.130.60.48   //对应ip
         203.130.60.49  //对应ip
         203.130.60.50  //对应ip
Aliases:  http://suning.com
http://Suning.com.wscdns.com //别名

在线二级域名爆破网站

https://dnsdumpster.com/
Netcraft - Search Web by Domain

工具获取二级域名

渗透测试中常用的在线工具--SecWiki 专题  参考链接
subDomainsBrute
wydomain 
theHarvester.py 
Fierce
Dig
knock
dnsspider
SubDomainscollect
SubBrute
dirfuzz

使用格式:

fierce  -dns http://baidu.com -threads 3
     subDomainsBrute.py http://suning.com
     python theHarvester.py -d http://suning.com -l 500 -b baidu -v 国内百度找的多
     python theHarvester.py -d 公司名 -l 500 -b baidu -v 
     python theHarvester.py -d http://suning.com -l 500 -b google -v国外站google多
     python theHarvester.py -d school -l 1000 -b all   all使用所有的搜索引擎进行搜索

subDomainsBrute使用需要安装依赖支持

报错信息:ImportError: No module named dns.resolver
     需要安装的库是 dnspython
      pip install dnspython
      没有pip的话, 可以用
     到https://github.com/rthalley/dnspython.git 下载
      cd dnspython
      python setup.py install

搜索引擎 Google新经验:

+ 把google可能忽略的字列如查询范围 
- 把某个字忽略
~ 同意词
. 单一的通配符
* 通配符,可代表多个字母
"" 精确查询

代码托管泄漏信息搜索

Google:

http://andy-game.googlecode.com/svn-history/
Gitbub:   https://github.com/search?utf8=%E2%9C%93&q=%E5%A4%96%E7%BD%91+%E8%B1%86%E7%93%A3&type=Code&ref=searchresults

ip反查域名

http://dns.aizhan.com

二级兄弟域名搜集

查询邮件服务器信息
目标IP地址范围搜集
利用代码托管网站搜集目标信息

确定ip 地址范围

扫描c段
获取cdn真实ip地址
社会工程学

整理笔记

这个我觉得最重要,这是一个好习惯 可以让我们重新把学习的技术做一个总结和巩固。在总结的过程形成自己对技术的理解与创新。从而让书本上的知识变成自己的东西。

如何学习网络安全

给你一个忠告,如果你完全没有基础的话,前期最好不要盲目去找资料学习,因为大部分人把资料收集好之后,基本上都是放在收藏夹吃灰,同时资料收集的多了,学起来就会迷茫,也会让自己很有压力

磨刀不误砍柴工,如果你是准备自学的话,要分步骤去进行

  • 第一步:搭建自学知识框架,具体怎么搭建学习框架,在后面我会讲;

  • 第二步:按照学习框架给自己定制阶段性的学习计划和目标,最好是按周自我反馈和调整;

  • 第三步:针对每周的学习计划寻找合适的自学资源,注意,只找当前需要的,不要贪多

  • 第四步:找几个懂得人,和他们处理好关系,后面学习过程中遇到问题还能有人给你解答;

这些都要一步一步来,不要想着一口气吃成一个大胖子。

搭建学习框架也是有诀窍的,比如我常用的三种方式

1.和牛人成为朋友,身边的朋友或公司的同事都可以,但要注意,记得请人家吃饭联络好感情,不然到关键时刻,很少有人会去帮你; 2.从各个博客网站上面搜索想了解的知识点路线图,然后找高赞的博文,基本上不会差,但要注意辨别真伪; 3.多找几个培训机构,看他们整理的课程大纲是什么样的,涉及哪些知识点,然后做归类汇总,具体的我就不说了,免得让大家认为我在给培训机构打广告;

废话不多说,先上一张图镇楼,看看网络安全有哪些方向,它们之间有什么关系和区别,各自需要学习哪些东西

在这个圈子技术门类中,工作岗位主要有以下三个方向:

安全研发 安全研究:二进制方向 安全研究:网络渗透方向

怎么入门?

聊完宏观的,我们再落到具体的技术点上来,给你看看我给团队小伙伴制定的网络安全学习路线,整体大概半年左右,具体视每个人的情况而定。

如果你把每周要学的内容精细化到这种程度,你还会担心学不会,入不了门吗,其实说到底就是学了两个月,但都是东学一下,西学一下,什么内容都是浅尝辄止,没有深入进去,所以才会有学了2个月,入不了门这种感受。 (友情提示:觉得有帮助的话可以收藏一下本篇文章,免得后续找不到)

1、网络安全理论知识(2天) ①了解行业相关背景,前景,确定发展方向。 ②学习网络安全相关法律法规。 ③网络安全运营的概念。 ④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周) ①渗透测试的流程、分类、标准 ②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking ③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察 ④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周) ①Windows系统常见功能和命令 ②Kali Linux系统常见功能和命令 ③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周) ①计算机网络基础、协议和架构 ②网络通信原理、OSI模型、数据转发流程 ③常见协议解析(HTTP、TCP/IP、ARP等) ④网络攻击技术与网络安全防御技术 ⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天) ①数据库基础 ②SQL语言基础 ③数据库安全加固

6、Web渗透(1周) ①HTML、CSS和JavaScript简介 ②OWASP Top10 ③Web漏洞扫描工具 ④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

7、脚本编程(初级/中级/高级) 在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级黑客 这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。

视频配套资料&国内外网安书籍、文档&工具 当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

一些我自己买的、其他平台白嫖不到的视频教程:

这份完整版的学习资料已经上传优快云,朋友们如果需要可以点击下方优快云官方认证资料免费领取【保证100%免费

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值