# 目录

- [前言](README.md)
- [1. 信息收集](Chapter1/README.md)
  - [1.1 如何处理子域名爆破的泛解析问题](Chapter1/1-1.md)
  - [1.2 如何绕过 CDN 查找真实 IP](Chapter1/1-2.md)
  - [1.3 phpinfo 页面你会关注哪些信息](Chapter1/1-3.md)
  - [1.4 如何判断目标操作系统](Chapter1/1-4.md)
  - [1.5 如何判断是否使用 CDN](Chapter1/1-5.md)
  - [1.6 有没有了解过 SVN/GIT 源代码泄露](Chapter1/1-6.md)
  - [1.7 说说域信息收集思路](Chapter1/1-7.md)
  - [1.8 如何快速定位域控](Chapter1/1-8.md)
  - [1.9 Wappalyzer 怎么进行指纹识别的](Chapter1/1-9.md)
  - [1.10 登录验证码怎么绕过](Chapter1/1-10.md)
  - [1.11 工作组环境下怎么判断是否有域环境](Chapter1/1-11.md)
  - [1.12 只有一个网卡通过什么方式判断内网中是否有其他网段](Chapter1/1-12.md)
  - [1.13 说说 Webpack 信息泄露](Chapter1/1-13.md)
  - [1.14 net group "Domain Admins" /domain 这条命令查询域内管理员没查到，那么可能出现了什么问题，怎么解决](Chapter1/1-14.md)
  - [1.15 继上题，这条命令的本质究竟是去哪里查](Chapter1/1-15.md)
  - [1.16 如何判断目标单位的机器是哪种协议出网](Chapter1/1-16.md)
  - [1.17 NSE 脚本原理](Chapter1/1-17.md)
  - [1.18 Nmap 的 FIN 扫描和空扫描是什么](Chapter1/1-18.md)
  - [1.19 为什么要搜集目标单位的控股信息](Chapter1/1-19.md)
  - [1.20 怎么找边缘资产呢](Chapter1/1-20.md)
  - [1.21 移动端怎么收集域名呢](Chapter1/1-21.md)
  - [1.22 SSL 证书有什么用，对信息收集有什么帮助](Chapter1/1-22.md)
  - [1.23 说说源码泄露搜索](Chapter1/1-23.md)
  - [1.24 空白页面怎么绕过](Chapter1/1-24.md)
  - [1.25 JS 接口有什么作用](Chapter1/1-25.md)
  - [1.26 一个正在运行的网站访问敏感路径回显 403 的原因有哪些](Chapter1/1-26.md)
  - [1.27 目标存在非常牛的杀软导致无法上线 CS，但是有远控软件怎么做](Chapter1/1-27.md)
  - [1.28 怎么收集主机上的所有有关密码的敏感信息](Chapter1/1-28.md)
  - [1.29 Web 配置文件信息怎么收集](Chapter1/1-29.md)
  - [1.30 抓取到域内 Windows 主机的 Wi-Fi 密码有什么利用思路](Chapter1/1-30.md)
  - [1.31 请说明 MSF 的扫描模块与 Nmap 或 FScan 相比，在隐蔽性和灵活性上的优势和劣势](Chapter1/1-31.md)
  - [1.32 请你详细说说你如何定制或魔改一个 MSF 扫描模块使其能更好地绕过流量分析和 IDS/IPS 的检测](Chapter1/1-32.md)
- [2. XSS](Chapter2/README.md)
  - [2.1 输出到 href 属性的 XSS 如何防御](Chapter2/2-1.md)
  - [2.2 XSS 绕过方式](Chapter2/2-2.md)
  - [2.3 XSS 利用方式](Chapter2/2-3.md)
  - [2.4 XSS 怎么打内网](Chapter2/2-4.md)
  - [2.5 XSS 如何绕过 HttpOnly 获取 Cookie](Chapter2/2-5.md)
  - [2.6 有 Shell 的情况下如何使用 XSS 实现对目标站的长久控制](Chapter2/2-6.md)
- [3. CSRF](Chapter3/README.md)
  - [3.1 SameSite 防御 CSRF 的原理](Chapter3/3-1.md)
  - [3.2 JSON 格式的 CSRF 如何防御](Chapter3/3-2.md)
  - [3.3 Ajax 发送 POST 请求会发几个数据包](Chapter3/3-3.md)
- [4. SQL 注入](Chapter4/README.md)
  - [4.1 过滤逗号的 SQL 注入如何绕过](Chapter4/4-1.md)
  - [4.2 SQL 报错注入函数有哪些](Chapter4/4-2.md)
  - [4.3 SQL 延时盲注 sleep() 被禁用怎么绕过](Chapter4/4-3.md)
  - [4.4 SQL 注入怎么写入 WebShell](Chapter4/4-4.md)
  - [4.5 宽字节注入漏洞原理](Chapter4/4-5.md)
  - [4.6 二次注入漏洞原理](Chapter4/4-6.md)
  - [4.7 堆叠注入漏洞原理](Chapter4/4-7.md)
  - [4.8 SQLMap 参数 level 与 risk 区别](Chapter4/4-8.md)
  - [4.9 MySQL 提权方式有哪些](Chapter4/4-9.md)
  - [4.10 MSSQL 的 xp_cmdshell() 函数被禁用怎么绕过](Chapter4/4-10.md)
  - [4.11 MySQL 5.0 以上和 5.0 以下的区别](Chapter4/4-11.md)
  - [4.12 SQL 注入 outfile() 被过滤怎么绕过](Chapter4/4-12.md)
  - [4.13 SQL 注入中 Post 和 Get 都做了防注入可采用什么方式绕过](Chapter4/4-13.md)
  - [4.14 SQL 盲注 if() 函数被过滤怎么绕过](Chapter4/4-14.md)
  - [4.15 SQL 注入无回显利用 DNSLog 如何构造](Chapter4/4-15.md)
  - [4.16 and or 被过滤怎么绕过](Chapter4/4-16.md)
  - [4.17 SQLMap 自带脚本有哪些](Chapter4/4-17.md)
  - [4.18 扫出后缀为 .asp 的数据库文件，访问乱码如何利用](Chapter4/4-18.md)
  - [4.19 找到一个注入点怎么判断对方什么数据库](Chapter4/4-19.md)
  - [4.20 单引号被过滤怎么绕过](Chapter4/4-20.md)
  - [4.21 MySQL 一个 @ 和两个 @ 的区别](Chapter4/4-21.md)
  - [4.22 为什么 MSSQL 存储过程可以执行命令](Chapter4/4-22.md)
  - [4.23 如果想通过 MSSQL 上传文件需要开启哪个存储过程的权限](Chapter4/4-23.md)
- [5. 横向移动](Chapter5/README.md)
  - [5.1 常见横向方法](Chapter5/5-1.md)
  - [5.2 CS 上线不出网机器用到的什么类型的 Beacon](Chapter5/5-2.md)
  - [5.3 PTT 有哪些攻击方法](Chapter5/5-3.md)
  - [5.4 DCSync 的利用条件](Chapter5/5-4.md)
  - [5.5 横向渗透命令执行手段](Chapter5/5-5.md)
  - [5.6 PTH、PTT、PTK 三者区别](Chapter5/5-6.md)
  - [5.7 一台机器不能出网，如何把一个 exe 文件放到对应的目标机器上去](Chapter5/5-7.md)
  - [5.8 说说域内委派](Chapter5/5-8.md)
  - [5.9 怎么定位域管曾经登录哪些机器](Chapter5/5-9.md)
  - [5.10 现在在域外有一台工作组机器的权限但没有域用户且无法直接通过漏洞进入域内，请问这种情况怎么进入域中找到域控](Chapter5/5-10.md)
  - [5.11 利用 NTLM Relay 配合 ADCS 这个漏洞的情况需要什么条件](Chapter5/5-11.md)
  - [5.12 继上题，Responder 应该开在哪台机器上，为什么](Chapter5/5-12.md)
  - [5.13 继上题，为什么 ADCS 这个漏洞能获取域管理员权限，原理是什么](Chapter5/5-13.md)
  - [5.14 如果拿到了一套 vCenter 的权限，如何去进一步深入利用](Chapter5/5-14.md)
  - [5.15 拿到 vCenter 管理员权限，但部分虚拟机处于锁屏状态怎么办](Chapter5/5-15.md)
  - [5.16 Kerberos 的原理](Chapter5/5-16.md)
  - [5.17 Flannel、Calico 和 Cilium 有什么区别](Chapter5/5-17.md)
- [6. 中间件](Chapter6/README.md)
  - [6.1 Fastjson 漏洞原理](Chapter6/6-1.md)
  - [6.2 Log4j 漏洞原理](Chapter6/6-2.md)
  - [6.3 Shiro 反序列化的形成原因及利用链](Chapter6/6-3.md)
  - [6.4 Shiro 550 721 区别](Chapter6/6-4.md)
  - [6.5 FastJSON 不出网利用方式](Chapter6/6-5.md)
  - [6.6 Windows 和 Linux 利用 REDIS 的区别](Chapter6/6-6.md)
  - [6.7 Nginx CRLF 注入原理](Chapter6/6-7.md)
  - [6.8 如何判断靶标是否使用 FastJSON](Chapter6/6-8.md)
  - [6.9 如何判断靶标是否使用 Log4j](Chapter6/6-9.md)
  - [6.10 如何判断靶标是否使用 Shiro](Chapter6/6-10.md)
  - [6.11 Nacos 如何通过配置文件拿 Shell](Chapter6/6-11.md)
  - [6.12 Nacos 不出网利用方式](Chapter6/6-12.md)
  - [6.13 .do 文件是哪种框架](Chapter6/6-13.md)
  - [6.14 Shiro 有 Key 无链怎么利用](Chapter6/6-14.md)
  - [6.15 Redis 主从复制原理](Chapter6/6-15.md)
  - [6.16 phpMyAdmin 写 Shell 的方法](Chapter6/6-16.md)
  - [6.17 了解过中间件哪些解析漏洞](Chapter6/6-17.md)
  - [6.18 Shiro 不出网怎么利用](Chapter6/6-18.md)
  - [6.19 JNDI 的解析流程和原理](Chapter6/6-19.md)
  - [6.20 runc 容器逃逸原理](Chapter6/6-20.md)
  - [6.21 JBoss 反序列化漏洞原理](Chapter6/6-21.md)
  - [6.22 XStreadm 反序列化漏洞原理](Chapter6/6-22.md)
  - [6.23 讲讲 Confluence RCE](Chapter6/6-23.md)
  - [6.24 讲下 Spring 相关的 RCE 原理](Chapter6/6-24.md)
  - [6.25 Log4j 如何绕过 trustURLCodebase](Chapter6/6-25.md)
  - [6.26 Fastjson 文件读写 gadget 是哪条，原理是什么](Chapter6/6-26.md)
  - [6.27 Spring4shell 原理&检测&利用](Chapter6/6-27.md)
  - [6.28 Kubernetes 攻击思路](Chapter6/6-28.md)
- [7. 蓝队防守](Chapter7/README.md)
  - [7.1 内存马查杀思路](Chapter7/7-1.md)
  - [7.2 Linux 日志存放位置](Chapter7/7-2.md)
  - [7.3 常见 Windows 事件 ID](Chapter7/7-3.md)
  - [7.4 为什么 aspx 木马的权限会比 asp 木马的权限更高](Chapter7/7-4.md)
  - [7.5 如何判断 Log4j 攻击成功](Chapter7/7-5.md)
  - [7.6 给你一个告警的内网 IP，怎么快速定位到他在哪栋楼哪层](Chapter7/7-6.md)
  - [7.7 SQL 注入防御方法](Chapter7/7-7.md)
  - [7.8 设备上数万条告警怎么快速找到攻击成功的告警](Chapter7/7-8.md)
  - [7.9 WebShell 查杀后仍有流量怎么办](Chapter7/7-9.md)
  - [7.10 拿到攻击者 IP 怎么溯源](Chapter7/7-10.md)
  - [7.11 内网报警处理方式](Chapter7/7-11.md)
  - [7.12 怎样从日志找 WebShell 位置](Chapter7/7-12.md)
  - [7.13 常见日志分析工具](Chapter7/7-13.md)
  - [7.14 网页挂马排查思路](Chapter7/7-14.md)
  - [7.15 XSS 防御方法](Chapter7/7-15.md)
  - [7.16 CSRF 防御方法](Chapter7/7-16.md)
  - [7.17 SSRF 防御方法](Chapter7/7-17.md)
  - [7.18 XXE 防御方法](Chapter7/7-18.md)
  - [7.19 文件上传防御方法](Chapter7/7-19.md)
  - [7.20 CS 流量特征](Chapter7/7-20.md)
  - [7.21 WebShell 工具流量特征](Chapter7/7-21.md)
  - [7.22 日志被删除如何排查](Chapter7/7-22.md)
  - [7.23 常见加固手段](Chapter7/7-23.md)
  - [7.24 挖矿病毒特征](Chapter7/7-24.md)
  - [7.25 挖矿病毒应急思路](Chapter7/7-25.md)
  - [7.26 如何判断钓鱼邮件](Chapter7/7-26.md)
  - [7.27 暴露面梳理怎么做](Chapter7/7-27.md)
  - [7.28 netstat 和 ss 命令的区别](Chapter7/7-28.md)
  - [7.29 Windows 日志存储位置](Chapter7/7-29.md)
  - [7.30 云产品的应急思路](Chapter7/7-30.md)
  - [7.31 DNS 重绑定漏洞原理](Chapter7/7-31.md)
  - [7.32 Token 和 Referer 的安全等级谁高](Chapter7/7-32.md)
  - [7.33 任意文件下载漏洞防御方法](Chapter7/7-33.md)
  - [7.34 怎么修改 TTL 值](Chapter7/7-34.md)
  - [7.35 Linux 怎么查看程序调用了哪些文件](Chapter7/7-35.md)
  - [7.36 CMD 命令行如何查询远程终端开放端口](Chapter7/7-36.md)
  - [7.37 查看服务器是否存在可疑账号、新增账号](Chapter7/7-37.md)
  - [7.38 查看服务器是否存在隐藏账号、克隆账号](Chapter7/7-38.md)
  - [7.39 SQL 注入用转义字符防御时，如果遇到数据库的列名或是表名本身就带着特殊字符怎么办](Chapter7/7-39.md)
  - [7.40 有哪些 SQL 语句无法使用预编译的方式](Chapter7/7-40.md)
  - [7.41 SYN 开放链接原理](Chapter7/7-41.md)
  - [7.42 了解 Linux /proc 目录吗](Chapter7/7-42.md)
  - [7.43 如何监控 Linux 文件操作](Chapter7/7-43.md)
  - [7.44 Windows Defender 安全机制](Chapter7/7-44.md)
  - [7.45 什么是 TCP 粘包/拆包](Chapter7/7-45.md)
  - [7.46 session 的工作原理](Chapter7/7-46.md)
  - [7.47 HTTP 长连接和短连接的区别](Chapter7/7-47.md)
  - [7.48 Xrange() 和 range() 返回的是什么](Chapter7/7-48.md)
  - [7.49 怎么防重放攻击](Chapter7/7-49.md)
  - [7.50 讲讲 SYN FLOOD 原理，防御，检测手段](Chapter7/7-50.md)
  - [7.51 讲讲 UDP 反射放大的原理，防御，检测手段](Chapter7/7-51.md)
- [8. 内网穿透](Chapter8/README.md)
  - [8.1 正向代理和反向代理区别](Chapter8/8-1.md)
  - [8.2 如何进行内网穿透](Chapter8/8-2.md)
  - [8.3 如何隐藏 CS 流量](Chapter8/8-3.md)
  - [8.4 ICMP 隧道的流量特征](Chapter8/8-4.md)
  - [8.5 代理转发常用的工具有哪些](Chapter8/8-5.md)
  - [8.6 目标机器 Ping 不通外网，没有办法走网络层协议如何搭建隧道](Chapter8/8-6.md)
  - [8.7 内网的多级代理用什么东西代理](Chapter8/8-7.md)
  - [8.8 如果 TCP 和 UDP 不出网怎么绕过](Chapter8/8-8.md)
  - [8.9 多级代理如何做一个 CDN 进行中转](Chapter8/8-9.md)
  - [8.10 内网有 ACL 策略，如果是白名单如何绕过](Chapter8/8-10.md)
- [9. 权限维持](Chapter9/README.md)
  - [9.1 怎么建立隐藏用户](Chapter9/9-1.md)
  - [9.2 360 开启了晶核模式，怎么去尝试权限维持](Chapter9/9-2.md)
  - [9.3 计划任务被拦截了怎么办](Chapter9/9-3.md)
  - [9.4 说说 PAM 软连接提权 / 后门原理](Chapter9/9-4.md)
  - [9.5 如何不记录执行命令](Chapter9/9-5.md)
- [10. SSRF](Chapter10/README.md)
  - [10.1 SSRF 漏洞存在位置](Chapter10/10-1.md)
  - [10.2 SSRF 漏洞绕过方法](Chapter10/10-2.md)
  - [10.3 SSRF 漏洞利用方式](Chapter10/10-3.md)
  - [10.4 SSRF 如何攻击内网服务](Chapter10/10-4.md)
  - [10.5 如何判断 SSRF 的流量是否攻击成功](Chapter10/10-5.md)
  - [10.6 SSRF 怎么用 Redis 写 Shell](Chapter10/10-6.md)
- [11. XXE](Chapter11/README.md)
  - [11.1 XXE 漏洞利用方式](Chapter11/11-1.md)
  - [11.2 XXE 盲注思路](Chapter11/11-2.md)
  - [11.3 PCDATA 和 CDATA 的区别](Chapter11/11-3.md)
- [12. 文件上传漏洞](Chapter12/README.md)
  - [12.1 文件上传漏洞绕过方法](Chapter12/12-1.md)
- [13. RCE](Chapter13/README.md)
  - [13.1 代码执行、命令执行的函数有哪些](Chapter13/13-1.md)
  - [13.2 正向 Shell 和反向 Shell 区别](Chapter13/13-2.md)
  - [13.3 如何从非交互的 Shell 提升为交互 Shell](Chapter13/13-3.md)
  - [13.4 PHP disable_functions() 绕过方法](Chapter13/13-4.md)
  - [13.5 PHP 的 %00 截断的原理](Chapter13/13-5.md)
  - [13.6 站库分离怎么拿 Shell](Chapter13/13-6.md)
- [14. 反序列化漏洞](Chapter14/README.md)
  - [14.1 CC1、CC6 区别](Chapter14/14-1.md)
  - [14.2 讲一下 CC1-7 的原理](Chapter14/14-2.md)
  - [14.3 BECL 利用链使用条件及原理](Chapter14/14-3.md)
  - [14.4 BCEL 可以用其他类加载器吗](Chapter14/14-4.md)
  - [14.5 了解 JEP290 的原理吗](Chapter14/14-5.md)
  - [14.6 讲下 RMI 原理以及相关的漏洞](Chapter14/14-6.md)
  - [14.7 JdbcRowSetImpl 如何触发的 JNDI 注入](Chapter14/14-7.md)
  - [14.8 CC 链四个 Transformer 区别](Chapter14/14-8.md)
  - [14.9 反序列化除了readObject 还有什么触发点](Chapter14/14-9.md)
  - [14.10 讲讲 IIOP 和 T3 反序列化原理](Chapter14/14-10.md)
  - [14.11 Java invoke 反射具体利用](Chapter14/14-11.md)
- [15. 权限提升](Chapter15/README.md)
  - [15.1 LM Hash 加密算法过程](Chapter15/15-1.md)
  - [15.2 与 SMB 协议相关的漏洞有哪些](Chapter15/15-2.md)
  - [15.3 脏牛漏洞提权原理](Chapter15/15-3.md)
  - [15.4 黄金票据和白银票据区别](Chapter15/15-4.md)
  - [15.5 读取不到 hash 怎么绕过](Chapter15/15-5.md)
  - [15.6 现在有一台 Windows Server 2008 如何提权](Chapter15/15-6.md)
  - [15.7 提权时选择可读写目录，为何尽量不用带空格的目录](Chapter15/15-7.md)
  - [15.8 对于不能直接上传而只能通过命令行执行的 Shell 怎么办](Chapter15/15-8.md)
  - [15.9 psexec 和 wmic 区别](Chapter15/15-9.md)
  - [15.10 内网抓取密码的话怎么抓](Chapter15/15-10.md)
  - [15.11 内网有杀软又怎么抓](Chapter15/15-11.md)
  - [15.12 操作系统什么版本之后抓不到密码](Chapter15/15-12.md)
  - [15.13 抓不到密码怎么绕过](Chapter15/15-13.md)
  - [15.14 桌面有管理员会话，怎么做会话劫持](Chapter15/15-14.md)
  - [15.15 当前机器上有一个密码本但被加密了，应该怎么办](Chapter15/15-15.md)
  - [15.16 Dcom 怎么操作](Chapter15/15-16.md)
  - [15.17 获取域控的方法有哪些](Chapter15/15-17.md)
  - [15.18 DLL 劫持原理](Chapter15/15-18.md)
  - [15.19 DPAPI 机制能干嘛](Chapter15/15-19.md)
  - [15.20 MS14-068 原理](Chapter15/15-20.md)
  - [15.21 内网文件 exe 落地怎么去做，用什么命令去执行来落地](Chapter15/15-21.md)
  - [15.22 DB 文件如何解密，原理是什么](Chapter15/15-22.md)
  - [15.23 PTH 中 LM hash 和 NTLM hash 的区别](Chapter15/15-23.md)
  - [15.24 Print Nightmare 漏洞分析](Chapter15/15-24.md)
  - [15.25 CS 域前置的原理](Chapter15/15-25.md)
  - [15.26 CS 流量是怎么通信的](Chapter15/15-26.md)
  - [15.27 土豆家族提权原理](Chapter15/15-27.md)
  - [15.28 UAC 怎么绕过](Chapter15/15-28.md)
  - [15.29 如何在没有 /tmp 写入权限的情况下，寻找替代的、可执行文件的临时存放位置](Chapter15/15-29.md)
  - [15.30 exploit 无法直接在目标机上编译，你有哪些跨平台编译或利用预编译二进制文件的策略](Chapter15/15-30.md)
  - [15.31 如何利用 Python 的环境特性在不修改原脚本的前提下，劫持程序执行流程并获取 Root Shell](Chapter15/15-31.md)
  - [15.32 某个定时任务执行的脚本内容是 `\#!/bin/bash;echo "Cleanup started" | mail -s "Status" $USER`，如何利用这个未指定绝对路径的 mail 命令提权](Chapter15/15-32.md)
  - [15.33 除了修改 `/etc/passwd` 外还可以利用 Dirty Cow 漏洞劫持哪些关键文件或内存区域来实现提权](Chapter15/15-33.md)
- [16. 文件包含漏洞](Chapter16/README.md)
  - [16.1 常用的协议有哪些](Chapter16/16-1.md)
  - [16.2 怎么 GetShell](Chapter16/16-2.md)
- [17. MongoDB 注入](Chapter17/README.md)
  - [17.1 MongoDB 注入方式](Chapter17/17-1.md)
- [18. CORS](Chapter18/README.md)
  - [18.1 CORS 利用方式](Chapter18/18-1.md)
- [19. 远控免杀](Chapter19/README.md)
  - [19.1 ShellCode 免杀方法](Chapter19/19-1.md)
  - [19.2 如何去过国内的杀软](Chapter19/19-2.md)
  - [19.3 分离免杀和单体免杀有啥区别，为什么要分离](Chapter19/19-3.md)
  - [19.4 做过其他免杀吗，比如结合 CS 和 MSF 的](Chapter19/19-4.md)
- [20. PHP 代码审计](Chapter20/README.md)
  - [20.1 === 和 == 的区别](Chapter20/20-1.md)
  - [20.2 常见入口函数怎么找](Chapter20/20-2.md)
  - [20.3 PHP 代码审计流程](Chapter20/20-3.md)
  - [20.4 ThinkPHP 框架审计起来有什么不同](Chapter20/20-4.md)
  - [20.5 PHP 原生的敏感函数有哪些](Chapter20/20-5.md)
  - [20.6 反序列化时有哪些魔术方法是可以作为一个入手点去找的](Chapter20/20-6.md)
  - [20.7 常见的路由方法](Chapter20/20-7.md)
  - [20.8 介绍下 PHP 的变量覆盖](Chapter20/20-8.md)
  - [20.9 远程文件包含和本地文件包含这两种涉及的 PHP 设置有什么](Chapter20/20-9.md)
  - [20.10 本地文件包含能不能通过 PHP 配置限制文件包含的路径](Chapter20/20-10.md)
  - [20.11 PHP 在做 SQL 注入防御时有哪些方法](Chapter20/20-11.md)
  - [20.12 如果审计到了一个文件下载漏洞如何深入的去利用](Chapter20/20-12.md)
  - [20.13 讲讲 Fortity 等代码审计工具原理](Chapter20/20-13.md)
- [21. JAVA 代码审计](Chapter21/README.md)
  - [21.1 JAVA 在做 SQL 注入防御时有哪些方法](Chapter21/21-1.md)
- [22. 操作系统](Chapter22/README.md)
  - [22.1 进程和线程内存空间的关系](Chapter22/22-1.md)
  - [22.2 介绍下父子进程](Chapter22/22-2.md)
  - [22.3 孤儿进程和僵尸进程区别](Chapter22/22-3.md)
  - [22.4 Kill 一个进程的时候都发生了那些事情，从父子进程角度讲](Chapter22/22-4.md)
  - [22.5 Linux 开机自启动方式](Chapter22/22-5.md)
  - [22.6 Linux 有哪些系统调用](Chapter22/22-6.md)
  - [22.7 说说 Linux 下的 Syscall](Chapter22/22-7.md)
- [23. 逆向破解](Chapter23/README.md)
  - [23.1 恶意样本给出函数家族的 md5，如何进行分类](Chapter23/23-1.md)
  - [23.2 Linux 程序分为哪几个段](Chapter23/23-2.md)
  - [23.3 .data 段存放哪些数据](Chapter23/23-3.md)
  - [23.4 .bss 段存放哪些数据](Chapter23/23-4.md)
  - [23.5 函数调用时的流程，参数如何传入以及寄存器、栈的变化](Chapter23/23-5.md)
  - [23.6 解释程序的编译和链接，编译的过程中会有哪些操作](Chapter23/23-6.md)
  - [23.7 说说 If/Else 语法树](Chapter23/23-7.md)
  - [23.8 如何比较两个 C 函数的相似度](Chapter23/23-8.md)
  - [23.9 什么情况下源代码与 IDA 反编译程序的代码差别很大](Chapter23/23-9.md)
  - [23.10 面对静态编译的大型木马如何通过 IDA 定位其网络传输部分的逻辑](Chapter23/23-10.md)
  - [23.11 如何动态地去找导入表](Chapter23/23-11.md)
  - [23.12 如何不在编码时直接导入相关 API 的前提下进行攻击](Chapter23/23-12.md)
  - [23.13 Windows 下有哪些常用的反调试技术](Chapter23/23-13.md)
  - [23.14 单步执行的原理是什么](Chapter23/23-14.md)
  - [23.15 在内存中已 Load 的程序如何快速找到其具有执行权限的段](Chapter23/23-15.md)
  - [23.16 恶意软件有哪些方案检测自己处于沙箱中](Chapter23/23-16.md)
  - [23.17 做一个反汇编器，指令集 opcode 的意义去哪查](Chapter23/23-17.md)
  - [23.18 怎么识别指令跳转条件和内存访问](Chapter23/23-18.md)
  - [23.19 做一个沙箱，有什么需要重定向的](Chapter23/23-19.md)
  - [23.20 ESP 定律原理知道吗](Chapter23/23-20.md)
  - [23.21 C++ 程序怎么去逆向找虚表](Chapter23/23-21.md)
  - [23.22 进程隐藏技术是什么，如何检测](Chapter23/23-22.md)
  - [23.23 如果多进程下，A 进程的 Source 触发到了 B 进程的 sink 点，如何溯源](Chapter23/23-23.md)
  - [23.24 JNDI 如何做 Hook](Chapter23/23-24.md)
- [24. 痕迹清除](Chapter24/README.md)
  - [24.1 清理日志要清理哪些](Chapter24/24-1.md)
  - [24.2 如何删除 Linux 机器的入侵痕迹](Chapter24/24-2.md)
- [25. 钓鱼社工](Chapter25/README.md)
  - [25.1 钓鱼方法除了 exe 这种双击的还有什么](Chapter25/25-1.md)
  - [25.2 钓鱼上线的主机如何进行利用](Chapter25/25-2.md)
  - [25.3 伪造电子邮件的原理](Chapter25/25-3.md)
- [26. 二进制](Chapter26/README.md)
  - [26.1 工控场景的入侵检测与普通场景入侵检测的区别](Chapter26/26-1.md)
  - [26.2 讲讲 Linux 平台的漏洞缓解机制](Chapter26/26-2.md)
  - [26.3 NX 是怎么绕过的](Chapter26/26-3.md)
  - [26.4 讲讲 Linux 平台的 ELF 文件结构](Chapter26/26-4.md)
  - [26.5 讲讲 Windows 平台的 PE 文件结构](Chapter26/26-5.md)
  - [26.6 讲讲 ASLR 怎么绕过](Chapter26/26-6.md)
  - [26.7 函数的调用约定有哪些，区别是什么](Chapter26/26-7.md)
  - [26.8 fuzzing 主要是用来干嘛](Chapter26/26-8.md)
  - [26.9 对 Windows 平台的漏洞和保护机制了解多少](Chapter26/26-9.md)
  - [26.10 对比一下 QEMU 模式的 Fuzzing 和源码模式的 Fuzzing](Chapter26/26-10.md)
  - [26.11 说说 QEMU 模式的动态插桩怎么实现的，有什么优缺点](Chapter26/26-11.md)
  - [26.12 fuzz 普通程序和数据库有哪些不同点](Chapter26/26-12.md)
  - [26.13 说说 AFL++ 和 AFL 有哪些不同](Chapter26/26-13.md)
  - [26.14 怎么给 AFL 做适配去 fuzz 数据库](Chapter26/26-14.md)
  - [26.15 介绍一下 fuzz 的流程，从选取目标开始](Chapter26/26-15.md)
  - [26.16 讲一下 AFL 的插桩原理](Chapter26/26-16.md)
  - [26.17 怎么选择 fuzz 测试点](Chapter26/26-17.md)
  - [26.18 哪些漏洞可以用 fuzz 检测到](Chapter26/26-18.md)
  - [26.19 符号执行是如何做约束求解的](Chapter26/26-19.md)
- [27. AI 安全](Chapter27/README.md)
  - [27.1 介绍下 SVM](Chapter27/27-1.md)
  - [27.2 介绍下 KNN](Chapter27/27-2.md)
  - [27.3 卷积神经网络介绍](Chapter27/27-3.md)
  - [27.4 莱文斯坦距离](Chapter27/27-4.md)
  - [27.5 倒排索引](Chapter27/27-5.md)
  - [27.6 搜索引擎的算法有哪些](Chapter27/27-6.md)
  - [27.7 了解 TF-IDF 文档匹配算法吗](Chapter27/27-7.md)
  - [27.8 SGD 和 Adam 的区别](Chapter27/27-8.md)
  - [27.9 如何缩减模型的检测时延](Chapter27/27-9.md)
  - [27.10 如何降低模型的误报率](Chapter27/27-10.md)
  - [27.11 如何找攻击样本](Chapter27/27-11.md)
- [28. 密码学安全](Chapter28/README.md)
  - [28.1 RSA 算法原理](Chapter28/28-1.md)
  - [28.2 AES 算法原理](Chapter28/28-2.md)
  - [28.3 说一下非对称加密算法的加密过程](Chapter28/28-3.md)
  - [28.4 有哪些了解过的非对称加密算法](Chapter28/28-4.md)
  - [28.5 栅栏密码的原理是什么](Chapter28/28-5.md)
  - [28.6 Padding Oracle Attack 讲讲](Chapter28/28-6.md)
- [29. 区块链安全](Chapter29/README.md)
  - [29.1 说说交易所](Chapter29/29-1.md)
  - [29.2 讲一讲区块链逆向函数涉及到的接收参数的指令集](Chapter29/29-2.md)
  - [29.3 说说重入漏洞](Chapter29/29-3.md)
  - [29.4 在 DeFi 项目中建立了各种各样的经济模型，怎样才能找出可能存在的漏洞](Chapter29/29-4.md)
  - [29.5 libsnark 核心是什么](Chapter29/29-5.md)
  - [29.6 truffle、solidity 了解吗](Chapter29/29-6.md)
  - [29.7 智能合约的鉴权、公私密钥](Chapter29/29-7.md)
  - [29.8 数字钱包的身份认证](Chapter29/29-8.md)
- [30. 云安全](Chapter30/README.md)
  - [30.1 控制了一台云主机但没有连接内网也没有云内网，该如何利用](Chapter30/30-1.md)
- [31. APP 安全](Chapter31/README.md)
  - [31.1 安卓系统如何进行 RCE，有什么思路](Chapter31/31-1.md)
  - [31.2 给一个移动端的 APP，已知服务端是 cloud 环境有什么思路利用](Chapter31/31-2.md)
- 
