6. binary 二进制攻击
控制劫持基础(Control Hijacking Basics)
定义: 通过二进制利用(Binary Exploitation)破坏应用程序的信任边界, 典型手段为内存损坏(Memory Corruption);
目标: 实现远程代码执行(Remote Code Execution, RCE)或提权(Privilege Escalation);
常见攻击类型:
缓冲区溢出(Buffer Overflow)
格式化字符串攻击(Format String)
整数溢出(Integer Overflow)
内存与汇编基础(Memory & Assembly Fundamentals)
内存布局:
x64 架构的每一个 entry 尺寸为 64b = 8B;
代码段(Text Segment): 存储可执行指令;
数据段(Data Segment): 存储全局变量;
堆(Heap): 动态分配内存;
栈(Stack): 管理函数调用与局部变量(后进先出);
从高地址向低地址增长;
0xffffffff -> 0x00000000;
$rsp 地址小于等于 ...
5. 内存空间抽象 Address Space
地址空间与抽象 Address Space and Abstract
os视角: 地址空间是在 process
内部的用于不同进程之间对物理内存高效, 安全访问的一种抽象方式;
Process = one or more threads running in an address space;
组成: 包括 code, data, heap, stack
Phisical Machine Interface: 多个任务共享同一个物理内存, 比如一个 config 文件
Virtual Machine Interface: 每个任务有独立的虚拟内存空间
地址空间抽象的三条准则
Address Space Independence:
Protection (controlled isolation):
Large Address Space:
单进程执行缺陷
多个进程执行
动态地址翻译 Dynamic Address Translation
Method 1: Base + Bound
机制
优点
缺点
Method 2: Segmentation
Method 3: P ...
5. 密码攻击 Password Attack
认证基础(Authentication Basics)
定义: 确认实体声明的属性真实性, 常用于验证用户或设备的身份(Identity);
目的:
实施访问控制策略(Access Control Policies)
防止冒充攻击(Impersonation Attacks)
示例:
网站通过密码认证用户
手机通过指纹识别机主
浏览器通过证书验证服务器
认证方式(Authentication Factors)
所知之物(Something You Know)
密码(Password), PIN码, 密钥
所有之物(Something You Have)
手机, 安全令牌(Security Token), 身份证
所是之物(Something You Are)
生物特征(Biometrics): 指纹, 面部识别(FaceID), 虹膜扫描
密码问题与防御(Password Problems & Defenses)
常见弱密码问题:
用户倾向于选择简单密码(如123456, password);
防御建议:
用户: 使用密码管理器(Passw ...
3. 网络层
网络层基础
核心功能:
寻址(Addressing)
转发(Forwarding): 将数据包定向到正确接口(基于本地转发表);
路由(Routing): 全局计算转发表(通过路由协议);
架构分层:
数据平面(Data Plane): 处理单个数据包的转发(快速, 本地决策);
控制平面(Control Plane): 计算转发表的分布式算法(全局, 慢速);
IP协议核心设计
IP数据包结构:
Header:
字段名
位数
功能
版本号(Version)
4
标识IP版本(如IPv4=4);
头部长度(IHL)
4
以32位word为单位的头部长度(如无选项时为5, 对应20字节, 最长 60B 因为 IHL 最长 4bit 即 0xF word = 60B);
服务类型(ToS/DSCP)
8
定义优先级或拥塞通知(如ECN);
总长度(Total Length)
16
整个IP包的总字节数(最大65535字节);
生存时间(TTL)
8
防环路, 每经过一跳减1, 归零时丢弃包;
协议(Protocol)
8
标识 ...
John the Ripper
简介和背景
由于Linux是Internet最流行的服务器操作系统,因此它的安全性备受关注,这种安全主要靠口令实现
Linux使用一个单向函数 crypt() 来加密用户口令;单向函数 crypt() 从数学原理上保证了从加密的密文得到加密前的明文是不可能的或是非常困难的; 当用户登录系统时,系统并不是去解密已加密的口令, 而是将输入的口令明文字符串传给加密函数, 将加密函数的输出与 /etc/passwd 文件中该用户的PASSWORD域进行比较,若匹配成功,则允许用户登录系统;
John-the-Ripper 是一款免费,开源的暴力密码破解器,它有多平台版本,支持目前大多数的加密算法,如DES, MD4, MD5等;该软件破解密码方式简单而粗暴,理论上只要时间上面允许,该软件可以破译绝大多数用户密码;
用法
在 macOS 上面安装 John-the-Ripper:
1brew install john-jumbo
简单的使用方式是 john --wordlist=/path/to/wordlist.txt /path/to/passwords.txt,
其中 john 会基于你提 ...
4. Network 基础
物理层攻击
数据链路层攻击
Ethernet
以太网(Ethernet) 是最常见的数据链路层协议, 用于在本地网络中传输数据:
• 通过 MAC 地址寻址(而不是 IP 地址);
• 传输单位是帧(Frame), 而不是 IP 包;
• 可以在有线(RJ45)或无线(Wi-Fi)网络上运行;
• 每个以太网帧大约 1500 字节
MAC
每个网卡(NIC)都有一个唯一的 48-bit MAC 地址
格式: xx:xx:xx:xx:xx:xx(如 e8:39:35:2d:3e:18),前 3 个字节(OUI)标识制造商(如 Intel, Cisco),后 3 个字节是设备的唯一编号;
但 MAC 地址可以被用户伪造! 使用 ifconfig 或 ip link set 命令可以更改 MAC 地址,攻击者可以使用 MAC 欺骗进行 ARP 欺骗(ARP Spoofing)攻击
网络层攻击
IP 地址
一个 IP 地址(IPv4, 如 192.168.1.100)由两部分组成:
Network Prefix(网络前缀)
• 类似于邮政编码(ZIP Code), 用于标识一个网络(LAN ...
4. 死锁 Deadlock
死锁简介 (Introduction to Deadlock)
定义 (Definition): 线程因循环等待资源 (Cyclical Resource Waiting) 而无限期阻塞的状态.
为了确保程序合理运行的必要条件:
安全性 (Safety): 所有操作必须正确 (避免非法交错).
活性 (Liveness): 操作必须持续进行; 死锁违反活性.
[!Fix Attempts]
Ignore: 1. 0S会自己完成的; 2. 这个方法占用cpu时间为0;
Detect and Fix:
Kill the deadlock threads:会导致一定!的 invariant条件破裂
Rollback actions and then try again:某些指令如 output 并不能 roll back
Prevent: 得知道有哪些造成 deadlock 的必要条件
💡 等待图 (Wait-for Graph):
顶点 (Vertices): 线程和资源.
边 (Edges):
线程 → 资源 (线程等待资源) ...
3. 信号量 Semaphore
信号量基础 (Semaphore Basics)
定义 (Definition): 一种抽象的整数计数器 (Integer Counter), 用于控制多线程对共享资源的访问.
核心操作 (Core Operations):
down() (或 P()/wait()): 原子性地减少计数器值; 若值为0则阻塞线程.
up() (或 V()/signal()): 原子性地增加计数器值; 唤醒等待的线程.
类型 (Types):
二进制信号量 (Binary Semaphore): 值仅0或1, 初始化为 1 的情况下等效于锁 (Lock).
计数信号量 (Counting Semaphore): 值可为任意非负整数, 表示资源的可用数量.
信号量的应用场景 (Applications of Semaphores)
互斥 (Mutual Exclusion):
1234semaphore sem(1);sem.down();// 临界区 (Critical Section)sem.up();
顺序约束 (Ordering Constraints):
例如确保线 ...
3. HTTP 攻击防御
TLS Transport Layer Security
在传输层中 tcp 协议并不能保证信息的 confidentiality, integrity, authenticity 因此在 传输层和应用层之间加了一层专门用来保护安全的协议
tls 协议假设用户端和服务器端是安全的,而沟通信道 network 是危险的 (malicious) 并且在网络上有两种攻击模式:
passive: only eavesdrops
active: can see inject modify or block
TLS 功能
confidentiality and integrity protection for app data
client 可以确保服务器的身份 (authenticate)
无法做到
用户端/服务器内病毒
应用软件本身脆弱性
社会工程学等信息泄漏
浏览记录、网页元数据分析
Denial of Service (DoS) 攻击
发展历史
现代 tls 拥有超过 30 年的研制历史
TLS 握手机制
用户端向服务器提供可以使用的安全算法, 服务器选择一个并且返回
客 ...
2. Web 攻击与防御
Web平台安全知识点大纲
1. Web安全目标与攻击模型
1.1 核心目标
用户保护: 防范恶意网站和网络攻击;
站点隔离: 确保不同站点间数据隔离;
完整性: 站点A无法篡改站点B的用户会话;
机密性: 站点A无法窃取站点B的用户数据;
1.2 攻击模型
恶意网站: 通过钓鱼或注入攻击危害用户;
恶意外部资源: 第三方脚本/广告携带攻击载荷;
网络攻击者: 窃听或篡改HTTP流量;
恶意软件攻击者: 控制用户设备或浏览器;
2. Web基础技术
2.1 HTML与安全转义
HTML结构: 通过标签定义文档结构与内容;
转义规则: 特殊字符需转义为实体(如<→<);
示例漏洞: 未转义的用户输入可能导致XSS攻击;
2.2 JavaScript与DOM
动态交互: JavaScript可修改DOM内容;
示例代码:
1234567<script> function addTodo(text) { var newitem = document.createElement("li"); ...
