如何入门
- 保持你的好奇心, 理解本质
- 学好高数 & 数据结构, 这些都是基础, 很有用
- 学习一门编程语言, 这里推荐 C++, 这将帮助你快速掌握其他语言
- 学会使用 Linux & Git
- 理解 TCP, DNS, HTTP, Stack, Heap 等等基本概念
- 学会自己解决问题 (www.google.com / www.baidu.com), 问别人只会导致你对这个问题只是一知半解
- 搭一个自己的博客, Github pages + hexo 即可, 不用钱
WEB 方向
- Learn V2ray to across the great firewall
- 学会 PHP, python, HTML, js
- 了解数据库的基本使用方法 (基本的 CURD 即可)
- 从脚本小子开始, 搞懂 sqlmap, burpsuite, dirsearch, curl 怎么用
- 从 0 搭建一个 WEB 网站 (LNMP/LAMP), 不要使用一键安装脚本
- 写出你自己的简单 CMS, 完成注册 / 登录并且留言, 可以直接用 PHP, 也可以尝试 python flask
- 掌握访问一个网站的完整流程 (从输入 URL 到服务器返回数据), 这将帮助理解很多概念, 比如 Cookie/User-Agent 的意义
- 学习常见漏洞 (XSS / SQL注入等) & 利用方法, 单纯看会很累, 可以通过练习 CTF 题目学习
- 不看 Writeup 做出一些高质量题 (国际赛 WEB 签到 / 国内 WEB 中等难度)
- 日一些国外的小站/0day 拿一波 Shell
- 尝试自己审计一些框架
- 保持心态, 少装逼, 多学习技术
RE/PWN 方向
- 学习 C 语言
- 懂得程序的是如何从源代码一步一步变为可执行文件
- 学会静态分析工具 IDA 的基本操作
- 学会动态分析工具 ollydbg 的使用
- 学会动态分析工具 gdb (配合 gef/peda) 的使用
- 学习汇编
- 掌握 Stack, Heap, Fastbin 等概念/原理
- 懂得基本算法, 异或, base64等
Crypto 方向
- AES, DES 分块密码
- MD5, SHA 散列算法
- ECDSA, ECDH 椭圆曲线
- RC4 流加密
- CBC, ECB, CFB, GCM 等加密模式
- LFSR
- HMAC 签名算法
- RSA 非对称加密/签名
- 数论
- 手写以上算法
- 常见攻击手法, Padding oracle, LFSR 状态恢复等