漏洞(Vulnerability)是什么?
漏洞 = 系统、软件、网络或人的弱点 攻击者利用弱点 → 造成入侵、窃密、劫持、破坏。
| 漏洞类型 | 描述 | 典型例子 |
|---|---|---|
| 软件漏洞(Software Vulnerability) | 程式编码有错误,导致可被利用 | Buffer Overflow、SQL Injection |
| 配置漏洞(Misconfiguration) | 设置不当造成风险 | 弱密码、开放端口、错误权限 |
| 人为漏洞(Human Vulnerability) | 最常见,由人类行为造成 | 诈骗、钓鱼、社交工程 |
Buffer Overflow(缓冲区溢出)
当程序把过多的数据写进固定大小的内存 → 会覆盖临近内容 → 可让攻击者执行恶意代码
例子: 输入超过预期的长度,使系统崩溃,甚至被植入 shellcode 控制系统。
关键字:
- EIP 被覆盖
- Shellcode
- Stack Overflow / Heap Overflow
SQL Injection(SQL 注入)
攻击者在输入栏位塞 SQL 指令,让数据库执行恶意查询。
例:
' OR 1=1; --
影响:
- 获取所有用户资料
- 绕过登录
- 修改或删除数据库
考试重点:Prepared Statement、参数化查询可防御
XSS(跨站脚本攻击)
攻击者在网页中注入 JavaScript。 目标:窃 Cookie、假冒用户、钓鱼。
三种类型:
| 类型 | 描述 |
|---|---|
| 反射型 | 一次性、常出现在 URL 参数 |
| 储存型 | 最危险,存进数据库长期存在 |
| DOM 型 | 基于浏览器中修改页面对象 |
CSRF(跨站请求伪造)
利用用户已登录状态,诱骗点击某链接,让网站执行用户不想执行的操作。 例:让用户 unknowingly 进行银行转账。
防御:Token、SameSite Cookie。
Directory Traversal(目录穿越)
攻击者通过 ../../ 访问原本不能访问的系统档案。
例如:
GET /../../etc/passwd
Command Injection(命令注入)
攻击者让网站执行系统指令。
例:
127.0.0.1; rm -rf /
配置漏洞(Misconfiguration)
| 配置漏洞 | 描述 |
|---|---|
| 未更改默认密码 | Router admin/admin |
| 开放不必要的端口 | SMB, RDP, FTP 未加密 |
| 错误权限设置 | Everyone:Full Control |
| 缺少补丁 | 没更新系统导致已知漏洞可被利用 |
| 目录 listing 开启 | 可查看整个网站档案结构 |
人为攻击(Human Attack)
1️⃣ 社交工程 Social Engineering
常见手法:
| 名称 | 示例 |
|---|---|
| Phishing(钓鱼) | 假冒银行邮件 |
| Spear Phishing | 针对特定个人 |
| Whaling(大物件钓鱼) | CEO、高管为目标 |
| Pretexting(借口攻击) | 假冒 IT 支援 |
| Tailgating(尾随) | 没有门禁卡而跟着别人进门 |
1
攻击者利用 ../../ 访问受保护的文件,请问属于什么漏洞?
A. SQL Injection B. Directory Traversal C. XSS D. CSRF
→ 正确答案:B
2 攻击者诱骗用户点击链接,利用用户已登录身份执行操作。属于?
A. CSRF B. XSS C. MITM D. SQL 注入
→ 正确答案:A
3 程序没有检查输入长度,攻击者输入过长的数据导致覆盖内存内容,这是什么漏洞?
A. XSS B. Buffer Overflow C. CSRF D. Broken Auth
→ 正确答案:B