基础知识篇
在开始网络安全学习之前,你需要掌握一些基础知识:
计算机网络
TCP/IP协议: 理解网络通信的基础
HTTP/HTTPS: Web应用的核心协议
端口与服务: 常见端口的作用(80、443、22等)
操作系统
Linux基础: 常用命令、文件系统
Windows安全: 注册表、权限管理
虚拟机使用: VMware/VirtualBox安装配置
编程语言
Python: 网络安全首选语言
JavaScript: Web前端必备
Bash脚本: Linux自动化工具
Web技术
HTML/CSS: 网页结构与样式
PHP/Java: 后端开发语言
数据库: MySQL基础操作
小白学习建议
- 先掌握一门编程语言(推荐Python)
- 安装Linux虚拟机,熟悉命令行操作
- 理解HTTP协议的工作原理
- 不要急于求成,打好基础最重要
- 多动手实践,理论结合实际
学习路线规划
按照以下阶段循序渐进地学习,避免走弯路:
第一阶段:基础入门(1-2个月)
- 学习Python基础语法
- 掌握Linux常用命令
- 理解计算机网络基础
- 学习HTML/CSS/JavaScript
- 安装配置开发环境
第二阶段:Web安全(2-3个月)
- 学习OWASP Top 10漏洞
- 掌握Burp Suite使用
- 练习SQL注入、XSS攻击
- 学习Web漏洞扫描
- 搭建DVWA靶场练习
第三阶段:进阶技能(3-4个月)
- 学习逆向工程基础
- 掌握密码学原理
- 学习二进制漏洞分析
- 了解内网渗透技术
- 参加CTF比赛实战
第四阶段:专业方向(持续学习)
- 选择渗透测试方向
- 或选择安全开发方向
- 或选择安全运维方向
- 深入学习专业知识
- 考取相关认证证书
学习进度参考
必备工具集合
网络安全学习离不开各种工具,以下是小白必备的工具清单:
工具安装建议
- ✅ 推荐使用Kali Linux,预装了大部分安全工具
- ✅ Windows用户可以使用WSL2运行Linux工具
- ✅ 重要工具建议在虚拟机中测试使用
- ✅ 定期更新工具版本,保持最新功能
Web安全入门
Web安全是网络安全的重要分支,也是最适合小白入门的方向:
OWASP Top 10
1. 注入攻击: SQL、命令注入等
2. 失效的身份认证: 弱密码、会话管理
3. 敏感数据泄露: 未加密传输
4. XML外部实体: XXE攻击
5. 失效的访问控制: 越权访问
常见漏洞
SQL注入: 通过输入控制数据库查询
XSS跨站脚本: 注入恶意JavaScript代码
CSRF跨站请求伪造: 伪造用户请求
文件上传漏洞: 上传恶意文件
目录遍历: 访问未授权文件
学习资源
DVWA: Damn Vulnerable Web Application
WebGoat: OWASP官方漏洞练习平台
Pikachu: 中文漏洞练习系统
sqli-labs: SQL注入专项练习
XSS Challenges: XSS专项练习
实战步骤
1. 信息收集: Whois、子域名扫描
2. 漏洞扫描: 使用工具自动扫描
3. 漏洞验证: 手动验证漏洞存在
4. 漏洞利用: 获取权限或数据
5. 权限提升: 获取更高权限
SQL注入示例代码
import sqlite3
username = input("请输入用户名: ")
password = input("请输入密码: ")
# ⚠️ 危险!直接拼接SQL语句
query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
# 安全的做法:使用参数化查询
query_safe = "SELECT * FROM users WHERE username=? AND password=?"
cursor.execute(query_safe, (username, password))
二进制安全基础
二进制安全涉及程序逆向、漏洞挖掘等高级技术:
基础知识
汇编语言: x86/x64架构
内存管理: 栈、堆、数据段
程序结构: ELF/PE文件格式
调试技术: 断点、单步执行
反编译: 将机器码转为高级语言
常见漏洞类型
缓冲区溢出: 栈溢出、堆溢出
格式化字符串: printf漏洞
整数溢出: 数值计算错误
UAF漏洞: Use After Free
竞争条件: Race Condition
学习路径
1. 学习C语言: 指针、内存管理
2. 学习汇编: x86基础指令
3. 学习调试: GDB、x64dbg
4. 练习逆向: CrackMe系列
5. 漏洞分析: CVE分析学习
推荐练习
PicoCTF: 二进制题目丰富
CrackMe: 逆向练习程序
Exploit-Exercises: 漏洞利用练习
ROP Emporium: ROP技术练习
CTF题目: pwn类题目
密码学入门
密码学是网络安全的基石,了解基本概念非常重要:
加密算法
对称加密: AES、DES、3DES
非对称加密: RSA、ECC
哈希算法: MD5、SHA-1、SHA-256
数字签名: 验证身份和完整性
数字证书: SSL/TLS证书
应用场景
HTTPS: SSL/TLS协议
密码存储: 哈希+盐值
数字签名: 软件签名验证
加密通信: 端到端加密
区块链: 密码学应用
CTF常见题型
古典密码: 凯撒、栅栏、维吉尼亚
RSA攻击: 低指数、共模攻击
编码转换: Base64、Hex、URL
隐写术: LSB、文件隐写
侧信道攻击: 时间、功耗分析
学习建议
1. 理论学习: 密码学原理
2. 工具实践: OpenSSL使用
3. CTF练习: 密码学题目
4. 编程实现: Python实现算法
5. 关注前沿: 后量子密码学
Python密码学示例
import base64
text = "Hello, World!"
# 编码
encoded = base64.b64encode(text.encode('utf-8'))
print("编码结果:", encoded)
# 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print("解码结果:", decoded)
CTF比赛入门
CTF(Capture The Flag)是网络安全竞赛,是检验学习成果的最佳方式:
CTF类型
Jeopardy: 解题模式,多种题型
Attack-Defense: 攻防模式
Mixed: 混合模式
King of the Hill: 争夺模式
常见题型
Web: Web漏洞利用
Pwn: 二进制漏洞利用
Reverse: 逆向工程
Crypto: 密码学
Misc: 杂项题目
新手推荐
PicoCTF: 专为新手设计
攻防世界: 中文平台
BUUCTF: 题库丰富
Hacker101: 免费课程+CTF
备赛建议
1. 组队参赛: 3-5人最佳
2. 分工合作: 各有所长
3. 多做练习: 积累经验
4. 学习Writeup: 总结提高
🏆 CTF比赛推荐
- 国际赛事: DEFCON CTF、PlaidCTF、Hack The Box
- 国内赛事: XCTF、TCTF、DDCTF
- 线上平台: CTFtime、Hacker101、Root-Me
- 新手友好: PicoCTF、OverTheWire、W3Challs
学习资源推荐
优质的学习资源可以帮助你更快地成长: