ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

网络安全入门学习路线:从零基础到渗透测试实战

网络安全入门学习路线:从零基础到渗透测试实战 1. 先给“黑客”祛魅这个行当到底在做什么经常有人私信问我同一个问题“我想学黑客能不能教我怎么黑别人的网站”说实话我第一次接触网络安全的时候也是带着这种好奇入坑的。但等你真正进了这个圈子在靶场里泡了半年、看了一整年的漏洞报告再回头看“黑客”这两个字你会觉得当初的想法又中二又危险。现在很多新人被短视频和影视剧带偏了以为黑客就是穿着帽衫、黑掉摄像头、在键盘上噼里啪啦敲几下就能转走别人账户里的钱。真实的网络安全行业完全不是这样。先说结论这个行业的绝大多数从业者干的是防御、检测、修复、合规的活儿真正做攻击渗透的人也必须有授权才能动手。我们圈子里把搞破坏的称为“黑帽”把发现漏洞并提交给官方修复的称为“白帽”两者之间还有“灰帽”——就是那种没授权但也没恶意、纯粹炫技的人。国内还有个有年代感的词叫“红客”泛指有爱国立场的技术爱好者但严格来说这不是职业分类。那“骇客”又是什么这个词其实是对英文hacker的音译变体但在中文语境下更多人用“黑客”泛指技术高手“骇客”则带有一点“恶意入侵者”的色彩。热词里还有个“白客”这个词现实中很少用出现在中文互联网早期指代正面的安全技术人员。说白了称谓不重要重要的是你掌握了技术之后选择站哪一边。再说说网络安全这个领域到底包含什么。很多人以为只有“渗透测试”才是网络安全其实这只是其中一个方向。完整的知识体系包括网络与系统安全防火墙策略、入侵检测、基线检查、系统加固Web安全SQL注入、XSS、CSRF、文件上传漏洞的挖掘与修复安全运营SOC监控、日志分析、威胁狩猎、事件响应密码学与协议安全加密算法、TLS/SSL、认证机制二进制与逆向工程漏洞挖掘、病毒分析、软件破解合规与等保等级保护测评、数据安全法、行业监管要求所以你问我“从零基础入门到精通看这一篇够不够”我会老实告诉你一篇文章不可能让你精通但可以帮你把这潭水看清楚知道先干什么、后干什么、哪些坑不能踩。这篇文章就是给那些真正想入行、想自学的新手画一张完整的地图。在地图拿到手之前千万别急着买什么“黑客神器工具包”十有八九是割韭菜或者打包木马的。2. 从零开始的学习路线地基打不牢迟早要返工新手最容易犯的毛病就是一上来就下载各种攻击工具对着某个网站瞎试。这不叫学习叫给自己找麻烦。我见过太多人折腾了三个月工具会点了但连“为什么这个漏洞存在”都说不清楚。面试官一问TCP三次握手和HTTP请求流程直接卡壳。工具永远只是表达思想的手段漏洞的本质是代码、协议、配置中的逻辑缺陷。2.1 第一阶段把计算机基础打扎实不管你未来想做渗透测试、安全运维还是安全研发以下三门课是绕不过去的计算机网络重点学OSI七层模型、TCP/IP协议族、HTTP/HTTPS协议、DNS解析过程。不用背报文格式但要理解握手、挥手、状态码、请求方法这些概念。操作系统Windows和Linux至少熟一个我建议优先Linux因为大部分服务器、靶场环境、安全工具都跑在Linux上。基础命令要会文件操作、权限管理、进程查看、网络配置。一门编程语言首选Python用来写脚本、写POC概念验证代码。不用学到精通能写爬虫、能处理报文就够用。HTML和JavaScript的读写能力也要有毕竟Web漏洞是入门的主流方向。这个阶段不用追求速度每天两小时坚持三个月左右基础就能达到“能听懂圈内人在说什么”的水平。2.2 第二阶段搭建自己的“合法靶场”光看书不练手永远学不会安全。但练习必须在自己搭的靶场里做这是原则问题。具体怎么搭呢虚拟化平台装一个VMware Workstation或者VirtualBox这是免费且主流的方案。靶机系统推荐先从DVWADamn Vulnerable Web Application开始它自带低中高三档难度的漏洞环境专门给新手练Web漏洞。进阶可以装VulHub、Sqli-labs、Upload-labs这些开源靶场。攻击机装一个Kali Linux它预装了大量的渗透测试工具。虽然很多人诟病“Kali是脚本小子的玩具”但它确实是新手认识工具生态最好的起点。我自己给新手的建议是第一次配环境别追求复杂先跑通DVWA再说。我在教学过程中发现很多新人卡死在环境搭建上装了三天系统连服务都起不来这是非常消耗信心的一步。如果实在装不上可以考虑云上靶场现在不少培训机构提供在线实验环境重点是先把练习做起来。2.3 第三阶段跟着漏洞原理“打怪升级”基础打牢、靶场跑通之后就可以按专题逐个攻克Web漏洞了。每个漏洞的学习路径是固定的原理 - 手工复现 - 工具辅助验证 - 防御方案。这一篇不可能把每个漏洞都写全但我会在后文把最核心的几个漏洞原理讲透你先建立整体认知然后按这个框架逐个深挖。学习路线图大概是HTML/JS基础 - SQL注入 - XSS跨站脚本 - CSRF - 文件上传 - 命令执行 - SSRF - 反序列化。这条路走下来恭喜你已经超越90%的“百度网盘黑客”了。3. 信息收集渗透测试里被低估的“第一步”我记得带过的很多新人一拿到靶机就急着用扫描器跑跑完看报告一头雾水。这就是典型的“还没学会走就想跑”。信息收集是渗透测试的起点也是最考验耐心和细心的一步。在真实的攻防演练中拿到一个目标之后前期侦察可能占掉整个项目四分之一甚至更多的时间。信息收集的核心目标很明确搞清楚这个目标的“攻击面”有多大。通俗说就是找到目标暴露在互联网上的所有入口——有多少台服务器、多少个IP、哪些端口开着、跑着什么服务、用的什么中间件和框架、有没有旁站和子域名、有没有暴露的管理后台和敏感文件。新手可以先掌握以下五类信息收集手段域名与子域收集子域名可以扩大攻击面常见思路是通过证书透明度Certificate Transparency、DNS爆破等方式收集。IP与端口扫描拿到IP后扫描开放端口看看跑的是Web服务、数据库还是SSH然后对应找已知漏洞。Nmap是必学工具-sS半开扫描最常用。指纹识别判断网站用了什么CMS如WordPress、什么框架如ThinkPHP、Spring、什么中间件如Nginx、Apache、Tomcat不同指纹对应不同漏洞库。工具可以用浏览器插件Wappalyzer或者命令行工具WhatWeb。目录与接口枚举很多敏感路径不会被搜索引擎收录需要主动去“猜”。经典工具是dirsearch跑一遍常见字典往往能扫出后台登录页、备份文件、API接口文档。Google Hacking与历史信息巧妙使用搜索引擎语法可以搜出暴露的管理后台、配置文件、开发文档。还记得有个项目在源码注释里遗留了内网IP和数据库账号这种信息稍加整合攻击链就出来了。很多新人觉得信息收集只是“扫一扫”而已没什么技术含量。但真正的差距恰恰体现在这里高手能通过一条子域名和一个后台路径推断出目标内部的网络架构、代码框架版本甚至开发团队的编码习惯。这些信息最终决定了后续测试的效率。这里必须强调一句老生常谈但必须说透的话信息收集只能在获得授权的范围内进行。你可以在自己的靶场、SRC平台授权范围内或者在攻防演练中按规则去收集跑到别人网站上扫端口、翻目录那是违法行为不是技术。4. Web漏洞必修课三大经典漏洞的原理、利用与防御4.1 SQL注入数据库在“翻译”你传进去的话SQL注入是Web安全里最经典、也最“历史悠久”的漏洞类型本质就是程序的数据库查询语句把用户输入的内容当成了代码来执行。举个例子一个登录业务在代码里可能是这样拼SQL的SELECT * FROM users WHERE usernameadmin AND password123456如果哪一步没有做参数化处理攻击者在用户名处输入admin --拼出来的SQL就变成了SELECT * FROM users WHERE usernameadmin -- AND password123456--在MySQL里是注释符后面的密码判断直接被注释掉了于是只要知道用户名就能登录。手工注入的基本逻辑是判断闭合方式 - 判断字段数 - 判断回显位置 - 提取数据库版本、库名、表名、字段名、数据。这一套流程建议新手先在靶场里手工做十次以上再考虑上sqlmap工具。原因很简单工具能帮你跑出结果但帮不了你理解为什么。面试的时候面试官不会只看你会不会用sqlmap更重要的是问你如何绕WAF、如何判断注入点类型。防御方案现在成熟了核心就一条使用预编译参数化查询把SQL语句结构和参数数据分开传递。底层数据库会先把SQL结构编译好再以“数据”的形式绑定参数无论传进去什么特殊字符都只是一串字符串永远不会被当作SQL代码执行。另外对所有的用户输入做白名单校验也从源头上缩小了风险。4.2 XSS跨站脚本网页里的“恶意演员”XSS比SQL注入更容易被新人忽略因为它的危害不像“拖库”那么直接。但我一直跟学员说XSS是现代Web应用中出现频率最高、变形最多、利用链最长的一类漏洞。它的原理可以这样理解一个网站有个留言板功能用户能输入评论网站把评论原样展示到页面里。如果你在评论里输入的是scriptalert(xss)/script而服务器没有做过滤、转义那么这段代码就会被浏览器当成页面脚本执行。这就是最基础的反射型和存储型XSS。反射型恶意脚本通过URL参数传入服务端输出到页面用户点击恶意链接才会触发。存储型恶意脚本被持久化保存到数据库里任何一个用户打开页面都会中招。评论区、个人简介、订单留言这些位置是重灾区。DOM型服务端根本没参与完全在前端DOM操作里把危险数据拼进了HTML。XSS真正的杀伤力在于配合其他业务使用。打个比方攻击者可以构造一个看起来完全正常的链接诱骗用户点击脚本窃取Session Cookie后回传——于是攻击者不需要知道密码直接续上用户的登录态就能接管会话。更严重的场景是配合后台管理功能比如在管理员浏览的页面里注入脚本直接以管理员身份执行敏感操作。防御的关键是“输出编码”数据在进入HTML、JavaScript、CSS、URL等不同上下文之前必须用对应的编码函数把、、、、等特殊字符转义。其次是Content-Security-PolicyCSP响应头它可以告诉浏览器“只信任白名单里的脚本源”就算页面代码被插入了恶意脚本浏览器也会拒绝执行。现代的框架如Vue、React在默认情况下对插值做了转义但v-html、dangerouslySetInnerHTML这类“不转义接口”依然是XSS的高发点。4.3 文件上传与命令执行从“放文件”到“控制服务器”文件上传功能几乎每个网站都有头像上传、附件上传、导入Excel……但很多开发都没想过这个口子一旦没守好就等于直接给攻击者递了一把打开服务器的钥匙。最经典的利用方式就是上传WebShell。攻击者构造一个内容为一句话木马的文件?php eval($_POST[cmd]); ?如果服务端没有校验文件内容只校验了扩展名把它传上去然后通过Web访问这个文件——恭喜攻击者已经拿到你在服务器上执行命令的“遥控器”了。所以文件上传的防御要注意三层白名单校验只允许指定的扩展名禁止一切不在名单里的类型。内容校验用服务端检查文件头magic number、MIME类型和文件内容不能只看前端传的参数。存储与执行分离上传文件放到独立的静态文件服务器或对象存储中不允许在Web应用目录下直接执行脚本。命令执行漏洞相对少一些但一旦存在就是致命的。这类漏洞的本质是程序把用户的输入拼进了系统命令里比如服务器端调用了system(ping . $ip)这样的代码。防御手段包括尽量避免直接调用系统命令、对命令参数做严格白名单、使用禁用的开箱API等等。5. 抓包分析入门用Wireshark看清网络里的“车辆行驶日志”前面讲的大部分是Web层的漏洞原理但如果你只停留在浏览器和HTTP层很多网络层面的安全问题你是看不见的。我建议所有初学者尽早养成抓包、看包的习惯。这不仅对渗透测试有用对排查日常网络故障、理解协议细节同样帮助巨大。Wireshark是目前最主流的网络协议分析工具免费开源全平台支持。它能做什么简单说把网卡上流过的每一个数据包都“拍下来”然后按照协议栈一层层拆开给你看。我第一次用它分析一个慢速网站问题时通过看TCP往返时延和重传率很快就找到了瓶颈那种“原来网线里的数据是这么走的”的感觉比背十遍OSI模型都管用。很多新手从网上找一些练习数据包来练手最常见的一个题目就是使用wireshark查看并分析靶机桌面下的capture.pcapng数据包文件找到黑客的ip地址。这种题怎么解呢我给你列一套可以复用的分析思路打开pcapng文件后先别急着乱翻。看统计菜单里的“协议分级”了解这个包里主要是什么流量——是HTTP多还是TCP多有没有可疑的IRC、Telnet等明文协议的流量。定位可疑IP。用统计 - 端点查看流量最集中的IP地址。攻击者一般不会是流量最干净的IP。如果一个IP既访问了你的Web服务又尝试连你的数据库端口那就有嫌疑。追踪流Follow TCP Stream。选中可疑的HTTP请求右键跟踪TCP流可以直接看到请求和响应的完整内容。在这个视图里账号密码、攻击payload往往就摆在明面上。看时间线。攻击不一定包在单个包里很可能是先扫描、再利用、再回连的节奏。通过时间列看包与包之间的间隔可以判断哪些行为是“主动攻击”哪些是正常访问。这里给你一个实战小例子。假设pcapng里有大量来自203.0.113.5的攻击流量表现为短时间内向目标IP的多个端口发送TCP SYN包紧接着又有几个带有/admin/login.php?id1特征的HTTP请求。通过Wireshark筛选器输入ip.addr 203.0.113.5就会把该IP相关的所有包过滤出来。再配合HTTP请求筛选http.request就能看到攻击路径是什么样的。这种分析能力在安全运营中心的日常工作中用得非常多。抓包分析的核心技能是会“过滤”。Wireshark的显示过滤器语法一定要练熟比如ip.src 192.168.1.1只看源地址tcp.port 443只看443端口的流量http.request.method POST只看POST请求tls.handshake.type 1只看TLS握手包其实不用全背你只需要掌握几个常用的然后善用右下角的“表达式”按钮它会给你列出一整棵协议字段树照着点就行。新手最容易犯的错误是一打开抓包就抓全网卡抓到几百MB文件卡到电脑死机。正确做法是先确定你要看什么流量再设置对应的抓包过滤器减少无关数据干扰。6. 走向实战SRC平台与CTF赛事才是“合法打怪”的副本从实力角度说靶场只能帮你建立手感进入商业环境或者参加真实项目才是检验水平的开始。但对新手来说最稳妥、最合法的“出师之路”是SRC平台和CTF比赛。6.1 SRC把挖洞变成正经事SRC全称是Security Response Center也就是厂商的安全应急响应中心。国内主流互联网公司基本都有自己的SRC平台也有行业聚合平台把几十上百家企业的众测项目汇总在一起。在这些平台上白帽子可以在厂商“授权”的资产范围内寻找安全漏洞提交后获得积分或现金奖励。新手第一次上SRC我建议按三条原则来从小目标开始。别一上来就去碰大厂核心业务那些边缘系统反而容易被遗漏但优先级也低。先找那些“测试账号开放、企业自建应用”的项目练手漏洞数量多、审核快。先在测试站上验证再提交。厂商给的测试环境怎么折腾都行但千万不要拿测试Payload去打线上数据。这是行业底线。报告写清楚。很多新手挖到漏洞但报告写得一塌糊涂没有截图、复现步骤模糊、影响范围说不清。一份合格的漏洞报告至少应该包含漏洞URL、漏洞类型、复现步骤最好带请求包和响应包、影响分析、修复建议。记住审核人员一天看几百份报告你的报告越清晰评级往往越高。现在这个行业已经很成熟了SRC渠道可以让你在没入职之前就建立自己的漏洞挖掘记录。很多公司招聘安全工程师非常看重SRC排名和提交记录这比简历上自吹自擂有说服力得多。6.2 CTF打比赛是成长的“加速器”CTFCapture The Flag是网络安全竞赛的主流形式解题方向分为Web、Pwn二进制漏洞利用、Reverse逆向工程、Crypto密码学、Misc杂项等。对入门者来说Web方向的题目最友好也是我最推荐新手先入坑的方向。国内比较权威、老牌的CTF赛事包括XCTF国际联赛、强网杯、护网杯、网鼎杯等。很多厂商和机构也会定期办一些新人友好的线上赛。打比赛最大的价值不是名次而是它逼着你在有限时间内快速学习一个新的小知识点——这种“被迫式快速学习”的节奏一旦适应后面自学任何新工具都会快很多。我的个人建议是入行前半年每周参加一场线上CTF不会的题目赛后看Writeup看懂后再自己独立做一遍。半年下来你对Web漏洞、编码绕过、密码学的理解会比你看十个月教程深得多。由于Web赛题经常结合真实的CMS框架、开源组件所以多留意当前的CVE公共漏洞披露对打比赛和挖SRC都有帮助。7. 就业关口考证、面试与岗位的真实画像不少人学网络安全是为了找工作那这部分你得拿小本本记好。7.1 常见的就业方向渗透测试工程师授权范围内对系统发起模拟攻击产出测试报告。出差多、实战多、成长快。安全运维/安全运营工程师负责防火墙、WAF、IDS/IPS维护看日志、处理告警、安全加固。岗位需求量大适合入门。安全研发工程师做安全产品扫描器、WAF、SIEM的后端开发要求代码能力强。等保测评师依据国家等级保护标准对系统进行测评偏合规方向不需要很强的攻防能力。应急响应/安全服务工程师甲方被攻破之后入场做排查、取证、清除后门、恢复系统。7.2 证书到底有没有用这个问题几乎每个新手都问过。我的看法是证书是敲门砖不是护身符。在校学生考NISP国家信息安全水平考试性价比很高从业者想提升含金量可以看CISP注册信息安全专业人员、CISSP注册信息系统安全专家。但真正面试时面试官最看重的还是你的实战能力和思路。你可以在简历里写“曾在XSRC平台提交过X个高危漏洞”这比一张证书有用得多。7.3 网络安全面试题会问什么结合我自己面试和被面试的经历新人的技术面大概集中在以下三类基础概念类三次握手和四次挥手的过程是什么HTTP和HTTPS的区别对称加密和非对称加密的区别漏洞原理类SQL注入如何判断注入点存储型XSS和反射型XSS的区别文件上传绕过都有哪些思路Redis未授权访问怎么利用和修复场景分析类如果线上服务器CPU飙升你会怎么排查收到一个钓鱼邮件怎么分析日志里出现大量401错误怎么办这些题都不需要你背答案只要你前面阶段是认真练过来的完全可以答得比较顺。如果发现自己答不上来趁现在把这些知识的“基本盘”补扎实面试就没那么可怕了。8. 新手避坑清单这些话没人提醒你可能要摔几次跤最后这部分是我最想对新手说的一些“体己话”不一定都是技术但每一条都是我或者身边朋友真实踩过的坑。1. 千万不要下载来路不明的“黑客工具包”。热词里有些像“黑客神器网站大全”“黑客开户软件下载”之类的东西十有八九是坑。真正的开源安全工具基本都是公开的、体积不大、有官方文档的。那种打包几百个工具、还要你关闭杀毒软件的东西请直接删掉。我做过测试很多“工具包”里有后门木马你一运行就等于把电脑的控制权送给了别人。安全圈的人竟然被“黑客工具”钓鱼说出去都丢人。2. 别搞“无授权测试”。哪怕你学有所成也别拿同学、同事、邻居的网站来练手更不能拿政府、学校、企业的系统来试。我们这行最讲究的就是“边界感”——授权是底线。技术能力越强越要懂得边界在哪里。3. 学习不要追求速成。“从入门到精通”这种标题本身就是个悖论。安全是攻防对抗的行业攻击技术在变、防御技术在变、业务也在变没有人能真正“精通”。我带了这么多年新人发现成长最快的往往不是天赋最高的而是最能沉下心一个漏洞一个漏洞啃的那种人。今天搞会一个XSS的绕过姿势明天搞会一个内网穿透的思路积累半年之后你就真的站在门槛上了。4. 多写笔记多输出。我一直鼓励新人把自己学过的漏洞原理、踩过的坑写成文章。你写出来的过程就是你把这些知识重新组织、内化的过程。我自己的博客就是从一篇很幼稚的SQL注入笔记开始的现在回看虽然漏洞百出但正是那时候养成的总结习惯让我能走得更远。5. 保持耐心以战养战。学习到一定程度一定要找实战机会。SRC平台、CTF比赛、开源项目找issue复现都是好的方式。如果你身边找不到安全的圈子就多混一些技术社区参加线上线下的分享认识同路的人。一个人闭门造车过不了多久就会因为看不到反馈而放弃。做个简单的总结吧。网络安全这个领域入门不难难的是方向感和自律。把基础打牢、在靶场里磨透每一个经典漏洞、多看报文、参加比赛、写报告这条路走下来你已经超越绝大多数人了。希望这一篇将近七千字的干货笔记能帮你少走一些我当年走过的弯路。我们后会有期。
返回列表