如何入门

  1. 保持你的好奇心, 理解本质
  2. 学好高数 & 数据结构, 这些都是基础, 很有用
  3. 学习一门编程语言, 这里推荐 C++, 这将帮助你快速掌握其他语言
  4. 学会使用 Linux & Git
  5. 理解 TCP, DNS, HTTP, Stack, Heap 等等基本概念
  6. 学会自己解决问题 (www.google.com / www.baidu.com), 问别人只会导致你对这个问题只是一知半解
  7. 搭一个自己的博客, Github pages + hexo 即可, 不用钱

WEB 方向

  1. Learn V2ray to across the great firewall
  2. 学会 PHP, python, HTML, js
  3. 了解数据库的基本使用方法 (基本的 CURD 即可)
  4. 从脚本小子开始, 搞懂 sqlmap, burpsuite, dirsearch, curl 怎么用
  5. 从 0 搭建一个 WEB 网站 (LNMP/LAMP), 不要使用一键安装脚本
  6. 写出你自己的简单 CMS, 完成注册 / 登录并且留言, 可以直接用 PHP, 也可以尝试 python flask
  7. 掌握访问一个网站的完整流程 (从输入 URL 到服务器返回数据), 这将帮助理解很多概念, 比如 Cookie/User-Agent 的意义
  8. 学习常见漏洞 (XSS / SQL注入等) & 利用方法, 单纯看会很累, 可以通过练习 CTF 题目学习
  9. 不看 Writeup 做出一些高质量题 (国际赛 WEB 签到 / 国内 WEB 中等难度)
  10. 日一些国外的小站/0day 拿一波 Shell
  11. 尝试自己审计一些框架
  12. 保持心态, 少装逼, 多学习技术

RE/PWN 方向

  1. 学习 C 语言
  2. 懂得程序的是如何从源代码一步一步变为可执行文件
  3. 学会静态分析工具 IDA 的基本操作
  4. 学会动态分析工具 ollydbg 的使用
  5. 学会动态分析工具 gdb (配合 gef/peda) 的使用
  6. 学习汇编
  7. 掌握 Stack, Heap, Fastbin 等概念/原理
  8. 懂得基本算法, 异或, base64等

Crypto 方向

  1. AES, DES 分块密码
  2. MD5, SHA 散列算法
  3. ECDSA, ECDH 椭圆曲线
  4. RC4 流加密
  5. CBC, ECB, CFB, GCM 等加密模式
  6. LFSR
  7. HMAC 签名算法
  8. RSA 非对称加密/签名
  9. 数论
  10. 手写以上算法
  11. 常见攻击手法, Padding oracle, LFSR 状态恢复等