一、测试概述
这是Web安全学习二阶段的综合测试,涵盖以下核心模块:
| 模块 | 题目类型 | 考察重点 |
|---|---|---|
| 文件上传漏洞 | 选择题 | 漏洞成因、危险文件类型、防御方法 |
| 弱口令漏洞 | 选择题 | 密码策略、复杂度要求、应对措施 |
| XSS漏洞 | 选择题 | 三种类型、防御技术、DOM型特点 |
| XXE漏洞 | 选择题 | XML解析、外部实体、安全配置 |
| 综合测试 | 选择题 | 工具使用、漏洞原理、攻击场景 |
二、文件上传漏洞知识点
1. 漏洞成因
核心原因:服务器没有严格检查上传的文件------没看类型、没限大小、没验内容,让坏人传了恶意文件。
跟什么无关:
• 用户密码复不复杂
• 数据库连接信息漏没漏
• 用的安全框架怎么样
2. 危险文件类型
| 危险程度 | 文件类型 | 原因 |
|---|---|---|
| 高危 | .php、.asp、.jsp | 服务器能直接运行的脚本,随便上传可RCE |
| 低危 | .txt、.jpg、.pdf | 一般不能直接运行,风险较低 |
3. 不推荐的做法
❌ 文件存服务器根目录,还能通过链接直接访问
4. 推荐的防御方法
| 方法 | 说明 |
|---|---|
| 文件签名验证 | 查上传文件的"身份",确保文件没问题 |
| 随机重命名 | 不用用户给的文件名,减少钻空子机会 |
| 白名单限制 | 只允许特定类型文件上传 |
| 独立存储目录 | 文件存到不能直接执行的目录 |
三、弱口令漏洞知识点
1. 漏洞成因
核心原因:用户用了太简单的密码,比如"123456"、"password",容易被猜中或破解。
跟什么无关:
• 系统没加密存密码(这是另一个安全问题)
• 数据库信息泄露
• SQL注入
2. 密码策略
| 推荐做法 | 不推荐做法 |
|---|---|
| ✅ 密码至少8位 | ❌ 用生日当密码 |
| ✅ 包含大小写字母、数字、特殊字符 | ❌ 用手机号当密码 |
| ✅ 不同系统用不同密码 | ❌ 不对密码设限制 |
| ✅ 提醒别用常见密码 | ❌ 给默认密码 |
3. 发现弱口令后的应对
首先:通知相关用户改密码,避免密码继续被利用
不要:
• 先关系统(会断服务、丢数据)
• 马上加防火墙(先改密码再说)
四、XSS漏洞知识点
1. 漏洞成因
核心原因:App没严查用户输入,让坏人往浏览器里插了恶意脚本。
跟什么无关:
• 服务器查不查上传文件类型
• 数据库信息漏没漏
• 用了最新安全框架(没内置严格的输入检查也防不住)
2. 三种XSS类型对比
| 类型 | 特点 | 防御难度 |
|---|---|---|
| 反射型 | 恶意代码在URL里,需要诱骗用户点击 | 中等 |
| 存储型 | 恶意代码存到数据库,所有访问者都会中招 | 中等 |
| DOM型 | 不用服务器有漏洞,纯客户端操作 | 最难防! |
3. 防御方法
| 推荐做法 | 不推荐做法 |
|---|---|
| ✅ 严格查用户输入 | ❌ 让用户输入JavaScript代码并在服务器运行 |
| ✅ 用HTML实体编码转义特殊字符 | ❌ 不做任何过滤 |
| ✅ 定期更新修补Web应用 | ❌ 直接输出用户输入 |
| ✅ 输出编码 | ❌ 让用户输入里加JavaScript |
五、XXE漏洞知识点
1. 漏洞成因
核心原因:App没严查用户输入的XML数据,让坏人注入了外部引用,能偷本地文件、连远程服务器搞破坏。
跟什么无关:
• 服务器查上传文件类型
• 数据库信息没加密
• 用不兼容的XML解析器(可能出错,但不一定有XXE)
2. 最危险的配置
高危配置:解析器开了外部实体解析,又没做好安全配置
安全配置:
• 关掉外部实体解析
• 默认安全配置
• 处理受限XML数据
3. 防御方法
| 推荐做法 | 不推荐做法 |
|---|---|
| ✅ 禁用XML外部实体解析 | ❌ 让用户随便输XML数据并在服务器解析 |
| ✅ 严查用户输入的XML数据 | ❌ 不做任何限制 |
| ✅ 用白名单限制允许的外部实体类型 | ❌ 允许任意外部实体 |
| ✅ 关掉XML解析器的外部实体解析 | ❌ 在用户输入里加XML声明 |
六、综合知识点速查
1. 信息收集工具
| 工具 | 用途 |
|---|---|
| 鹰图(Hunter) | 网络空间搜索引擎,发现联网设备 |
| Wappalyzer | 识别网站技术栈(服务器、框架等) |
| Nmap | 端口扫描,排查开放端口风险 |
| Masscan | 快速端口扫描(比Nmap更快) |
| DirBuster | 图形化目录扫描,挖掘隐藏后台 |
| oneforall | 子域名收集 |
| 蚁剑 | WebShell管理(不是信息收集工具!) |
2. SQL注入类型
| 类型 | 适用场景 |
|---|---|
| union注入 | 有回显,能直接看到数据 |
| 报错注入 | 有错误信息回显 |
| 盲注 | 无任何回显,只能通过布尔/时间判断 |
| 宽字节注入 | 存在宽字符编码问题 |
3. 漏洞核心原理速查
| 漏洞 | 核心原理 |
|---|---|
| CSRF | 用户已登录 + 点击恶意链接 + 未验证请求来源 |
| SSRF | 输入验证不严,允许攻击者构造内部URL |
| XXE | XML解析器允许外部实体引用 |
| 文件包含 | 伪协议、绝对路径、相对路径 |
| 反序列化 | 恶意序列化数据被反序列化执行,触发魔术函数 |
| 水平越权 | 普通用户查看其他普通用户的个人信息 |
| 垂直越权 | 普通用户访问管理员后台 |
七、实操题解题思路
第1题:上传漏洞攻击
利用文件上传漏洞,上传恶意脚本获取服务器权限。
第2题:丢失的旗帜
步骤:
1. 根据提示"buyer:我忘记密码了...",使用BP爆破
2. 输入用户名:buyer,密码乱写,BP抓包-爆破模块
3. 对目标 YnVZXIxMzphZnNkZnM= 配置Base64解码攻击
4. 爆破成功后得到:buyer:password
5. 用 buyer:password 登录,修改密码时抓包将用户改成 admin/admin
6. 换浏览器以 admin/admin 登录,获取flag
第3题:捕获标志
利用漏洞获取隐藏的flag。
第4题:文件阅读器
1. 探索默认首页
2. 探索 secret.php,利用文件读取漏洞获取敏感信息
第5题:服务器监控
利用服务器监控功能的漏洞。
第6题:特殊的登录
分析登录逻辑,找到绕过方法。
第7题:破解管理员密码
使用字典爆破管理员密码。
第8题:秘密盗窃者
利用信息泄露或越权漏洞获取敏感数据。
第9题:管理员密码重置
利用密码重置逻辑漏洞:
1. 第一次BP抓包
2. 第二次BP抓包
3. 分析两次请求的差异,找到漏洞点
第10题:管理员登录挑战
绕过管理员登录验证。
第11题:综合靶场_plus
步骤:
1. 弱口令爆破,获取普通用户权限
2. 个人中心越权,获取管理员权限
八、DOM型XSS实战代码
漏洞代码(dom-xss.php)
<?php
// DOM型XSS漏洞示例
?>
<!DOCTYPE html>
<html>
<head>
<title>DOM XSS Demo</title>
</head>
<body>
<div id="output"></div>
<script>
// 从URL获取参数并直接插入DOM(危险!)
var content = location.hash.substring(1);
document.getElementById("output").innerHTML = content;
</script>
</body>
</html>
攻击复现
方式一:直接弹框
http://localhost/dom-xss.php#<img src=x onerror=alert(1)>
方式二:绕过WAF
http://localhost/dom-xss.php#<img src=x onerror=alert`1`>
方式三:IFRAME标签嵌套
http://localhost/dom-xss.php#<iframe src="javascript:alert(1)">
方式四:编码绕过
http://localhost/dom-xss.php#<img src=x onerror=alert(1)>
方式五:混淆绕过
http://localhost/dom-xss.php#<img src=x onerror=eval(atob('YWxlcnQoMSk='))>
总结:二阶段核心能力
通过二阶段学习,你应该掌握:
1. 信息收集能力 - 使用各种工具收集目标信息
2. 漏洞挖掘能力 - 识别和利用常见Web漏洞
3. 工具使用能力 - 熟练使用Burp Suite、Nmap等工具
4. 代码审计能力 - 分析源码发现安全缺陷
5. 防御设计能力 - 理解漏洞原理,设计防御方案