
Web 安全测试用例全汇总会话、XSS、注入、文件上传前言很多做功能测试、安全测试、SRC 漏洞挖掘的同学在进行 Web 应用安全检测时经常遇到一个痛点没有一套系统化、可直接落地的测试用例清单。想到哪里测到哪里很容易漏掉关键检测点扫描器扫出来一堆告警分不清哪些是真漏洞、哪些属于误报。Web 安全测试不是单纯跑 AWVS、Xray 自动化扫描人工用例检测才是发现业务逻辑与浅层漏洞的核心。本文整理四大高频模块完整安全测试用例会话管理、XSS 跨站脚本、注入漏洞SQL 注入为主、文件上传漏洞。每部分包含原理简述、详细测试用例、Payload、预期结果、漏洞判定标准与修复建议。不管你是软件测试工程师转安全测试、内网 / Web 渗透新手还是准备 SRC 挖洞这份清单都可以直接拿来作为测试 Checklist做项目测试时逐项勾选。免责声明本文内容仅用于授权环境下安全学习、靶场练习与企业内部安全测试。禁止在没有书面授权的业务系统执行任何安全测试未经授权的渗透、漏洞测试属于违法行为需要承担相应法律责任。一、会话管理安全测试用例Session Cookie模块说明会话管理漏洞主要是 Cookie、SessionId、JWT 令牌设计不当。攻击者可实现会话劫持、会话固定、越权登录、账号未注销等攻击。这一类漏洞经常被新手忽略但一旦出现风险等级很高。测试前置条件注册 2 个账号准备浏览器 Burp 抓包工具记录登录前后 Cookie/Token 变化。用例编号测试项预置条件操作步骤预期结果风险等级SESS_001登录成功后会话令牌是否更新拥有测试账号1. 抓包登录前的 SessionId/Cookie2. 提交登录请求对比登录前后 Session 值登录成功必须更换全新会话 ID不能复用登录前令牌高SESS_002Cookie 安全属性检测HttpOnly、Secure、SameSiteHTTPS 站点1. 查看登录后 Set-Cookie 响应头2. 检查关键 Cookie 是否配置 HttpOnly、Secure、SameSite身份 Cookie 需要开启 HttpOnly禁止 JS 读取 CookieHTTPS 站点开启 SecureSameSite 设置为 Strict/Lax高SESS_003会话超时自动失效账号正常登录1. 登录账号保持不操作等待超时时间2. 使用旧 Cookie 直接访问需要登录的接口超时后旧会话直接失效跳转登录页拒绝访问业务接口中SESS_004退出登录会话是否彻底销毁账号登录状态1. 登录系统记录 Cookie2. 点击退出登录3. 使用退出前 Cookie 重放请求退出登录后服务端销毁会话旧 Cookie 不可继续使用高SESS_005会话固定漏洞测试注册普通账号1. 先拿到一个未登录状态的 SessionId2. 使用这个 SessionId 完成登录3. 验证登录后 Session 没有改变登录后必须更换会话不能沿用预先设置的 SessionId高SESS_006多端登录会话控制测试账号支持多设备登录1. A 浏览器登录账号2. B 浏览器登录同一账号3. 观察 A 端会话是否下线支持单点登录的系统后登录设备应踢掉前面会话至少提供查看在线会话、强制下线功能中SESS_007JWT 令牌测试如果使用 JWT接口使用 Authorization Bearer Token1. 拿到 JWT使用 jwt_tool 解析载荷2. 修改 payload 内 userid、role不修改签名重放3. 尝试删除签名、修改 alg 算法后端必须严格校验 JWT 签名篡改 payload 后的 Token 直接拒绝不能直接信任载荷内容高SESS_008Cookie 路径与域限制检查登录获取 Cookie查看 Cookie 的 Domain、Path 属性检查是否范围过大Cookie Domain 不能设置为泛域名Path 限制到对应业务路径减少泄露风险低SESS_009会话令牌随机性检测多次登录获取多个 SessionId多次登录收集多个 SessionID查看是否存在规律、可预测、短长度 IDSession 令牌必须高随机、足够长度不能是自增数字、简单时间戳中SESS_010敏感操作是否二次校验会话已登录账号在已登录状态执行修改密码、更换手机等高危操作抓包查看会话校验高危操作除会话外增加验证码、短信二次验证防止 CSRF 会话劫持高会话模块补充 Payload / 检测点CSRF 配套检测修改资料、提交订单接口是否校验 CSRF Token无 Token 则存在跨站请求伪造。测试思路不要只在浏览器测试一定要用 Burp 重放旧 Cookie很多前端退出了但后端会话没有销毁。二、XSS 跨站脚本测试用例反射型、存储型、DOM 型模块说明XSS 分为三类反射型 XSS一次性参数带入页面返回、存储型 XSS存入数据库持久危害风险最高、DOM XSS前端 JS 直接操作 DOM流量里看不到恶意代码回显。测试原则所有用户可控输入点全部注入 payload包括 URL 参数、POST 请求、JSON 参数、请求头、评论、昵称、个人简介。用例编号测试项预置条件操作步骤预期结果风险等级XSS_001基础反射型 XSS 测试存在带参数的页面如搜索页、详情页1. 在 URL 参数输入基础 payloadscriptalert(1)/script2. 查看页面源码看 payload 是否原样输出弹窗是否触发输入内容必须转义不执行 JS不会弹出 alert中XSS_002HTML 标签绕过 payload 测试输入框可接收文本前端有简单过滤提交 payloadimg srcx onerroralert(1)、svg onloadalert(1)观察页面渲染过滤必须后端生效不能仅前端拦截特殊标签、事件处理器需要转义中XSS_003存储型 XSS 基础测试评论、昵称、签名、留言等持久化输入框1. 提交 payload 到输入框2. 保存数据3. 打开另外账号 / 另一个浏览器访问该页面存入数据库的内容输出到页面时做 HTML 转义脚本无法执行高XSS_004JSON 接口 XSS 测试后端接口返回 JSON前端渲染数据在 JSON 请求体中注入 XSS payload前端渲染数据页面观察是否触发弹窗JSON 返回数据前端输出到 HTML 页面必须做转义中XSS_005DOM 型 XSS 检测页面 JS 读取 url、hash、postMessage 数据1. 查看前端 JS 源码寻找 innerHTML、document.write、eval、location 等危险函数2. 在 url#hash 片段注入 payload前端从 URL 读取的数据不能直接放入 DOM需要做编码过滤中XSS_006CSP 策略绕过测试站点配置 Content-Security-Policy使用各类 CSP 绕过 payload测试 CSP 是否有效是否存在 unsafe-inline、unsafe-eval 危险配置CSP 严格配置禁止内联脚本、eval限制脚本加载域名低中XSS_007输入过滤绕过大小写、编码、注释混淆系统存在简单黑名单过滤PayloadScRiPtalert(1)/ScRiPt、#60;script#62;alert(1)#60;/script#62;黑名单很容易绕过推荐使用白名单 输出编码防御中XSS_008请求头 XSS 测试页面展示 User-Agent、Referer 等请求头修改 UA 头注入 XSS payload页面展示 UA 内容请求头输出页面时同样转义防止注入低XSS_009XSS 存储业务场景私信、站内通知支持用户发送私信功能A 账号发送带 XSS payload 私信给 B 账号B 打开消息查看页面消息展示页面转义特殊字符脚本不执行高XSS_010输出在 JS 上下文内 XSS 测试输入内容直接嵌入页面 JS 代码块Payload;alert(1);//测试 JS 上下文闭合注入JS 内部输出值做 JS 编码防止引号闭合逃逸中常用 XSS 基础 Payload 合集靶场 / 授权测试使用scriptalert(1)/script img srcx onerroralert(1) svg onloadalert(1) javascript:alert(1) ;alert(1);//重点区分页面只是源码显示 payload 文本不弹窗不算漏洞浏览器执行 JS 代码弹出窗口 / 请求外带地址才是真实 XSS 漏洞。很多新手把未转义但不执行代码当成漏洞提交 SRC 被驳回。三、注入漏洞测试用例SQL 注入为主附带通用注入思路模块说明注入漏洞是 OWASP Top10 经典高危漏洞。用户可控参数直接拼接到 SQL 语句攻击者可以读取数据库数据、拖库、修改数据甚至执行系统命令。除 SQL 注入外同样思路可以延伸测试命令注入、LDAP、XPath 注入。测试原则所有数据库查询相关参数GET/POST/JSON 参数、排序参数、分页参数都需要测试重点测试 id、order、sort、search、keyword。用例编号测试项预置条件操作步骤预期结果风险等级SQLI_001单引号闭合测试带查询参数的页面例如详情id11. 参数添加单引号2. 观察页面返回报错、页面异常、空白、5003. 双引号重复测试输入引号需要被转义或过滤不能抛出数据库原生报错信息高SQLI_002布尔盲注基础测试页面根据条件返回不同内容Payload?id1 and 11和?id1 and 12对比两个请求页面返回内容差异两个请求页面返回一致不能出现真假条件页面不同的现象高SQLI_003联合查询注入测试存在回显的查询接口Payload?id1 union select 1,version(),database()-- -观察页面是否返回数据库版本、库名禁止执行额外查询参数强校验使用预编译语句参数化查询高SQLI_004报错注入测试页面会输出数据库报错信息Payload?id1 and updatexml(1,concat(0x7e,database()),1)观察是否爆出数据库信息关闭详细数据库错误提示不直接返回数据库报错详情高SQLI_005堆叠查询注入测试支持多语句执行的数据库MySQLPayload?id1;select version();-- -测试能否执行多条 SQL 语句禁止堆叠查询数据库账号最小权限禁止执行危险语句高SQLI_006Order by 排序注入测试接口支持 sort、order 参数例如 sortid修改 sort 参数传入注入 payloadsort(select version())观察排序异常排序字段不接受用户直接控制使用白名单限定允许排序字段中SQLI_007POST/JSON 请求注入测试POST 表单或者 JSON 接口查询数据在请求体 JSON 字段添加单引号、and 11 等注入 payloadBurp 重放测试后端 JSON 参数同样使用预编译不直接拼接 SQL 语句高SQLI_008时间盲注测试页面无回显无报错页面返回无明显差异只能依靠响应延迟Payload?id1 and sleep(5)观察请求响应时间是否延迟 5 秒不能触发数据库 sleep 延时参数校验拦截恶意语句高SQLI_009宽字节注入测试GBK 编码站点使用 GBK 字符集的老系统Payload%df尝试绕过转义过滤闭合 SQL 语句统一使用 UTF-8 编码禁止使用 GBK避免宽字节绕过高SQLI_010HQL/ORM 注入测试Mybatis、HibernateJava 项目使用 ORM 框架直接接收参数测试参数拼接场景 or 11--等 payload 测试ORM 框架也会存在注入必须使用命名参数禁止字符串拼接高注入测试关键提醒看到页面返回数据库报错属于信息泄露同时提示大概率存在注入风险不要只依赖单引号很多场景是数字型注入不需要引号闭合修复的核心不是黑名单过滤关键字必须使用预编译 / 参数化查询。黑名单可以被各种编码、注释、大小写变形绕过。四、文件上传漏洞测试用例模块说明文件上传是高危漏洞一旦过滤不严攻击者上传可执行脚本php/jsp/aspx访问文件地址直接拿到服务器权限。上传漏洞防护经常只做前端校验后端完全没有校验是 SRC 非常高频的漏洞点。测试思路前端限制可以直接通过 Burp 抓包删除 JS 校验所有校验必须放在服务端。用例编号测试项预置条件操作步骤预期结果风险等级UPLOAD_001前端 JS 校验绕过上传页面前端限制后缀JS 判断文件类型1. 准备一句话脚本文件2. Burp 抓包先上传正常图片3. 修改文件名后缀替换文件内容重放请求后端独立校验不依赖前端 JS拦截脚本文件上传高UPLOAD_002文件后缀黑名单绕过测试后端黑名单禁止 php、jsp尝试上传1.php%00.jpg、1.php;.jpg、1.pHp、1.php5、1.jspx 等变种后缀使用白名单只允许 jpg/png/gif 等图片后缀拒绝黑名单模式高UPLOAD_003Content-Type MIME 类型伪造后端仅校验请求头 Content-Type抓包上传 php 脚本修改 Content-Type 改为 image/jpeg提交上传不能仅依靠 Content-Type 头校验后端读取文件内容校验文件真实类型高UPLOAD_004图片马上传 文件包含组合漏洞支持图片上传并且存在文件包含功能制作图片马图片 脚本上传尝试通过文件包含解析图片内脚本图片存储目录禁止脚本解析不允许用户上传文件被当作脚本执行高UPLOAD_005文件名特殊字符、路径遍历测试上传后服务器保留文件名文件名填写../shell.php尝试上传到 web 根目录上级路径严格过滤文件名移除../、/、\等路径字符重命名上传文件高UPLOAD_006文件大小限制测试系统限制上传文件大小超过限制大小文件上传超大文件测试是否造成 DoS限制文件大小拒绝超大文件上传防止磁盘耗尽低UPLOAD_007上传文件存储目录解析测试上传文件可以直接访问 URL上传图片后修改文件后缀访问上传文件 URL测试服务器是否解析脚本上传目录配置取消脚本执行权限不解析 php/jsp 等脚本高UPLOAD_008空文件名、特殊文件名测试文件上传接口测试空文件名、中文文件名、特殊符号文件名观察服务端处理逻辑服务端规范化文件名过滤危险特殊字符统一重命名存储低UPLOAD_009文件内容校验文件头校验仅校验文件头文件内容可篡改修改文件头为 GIF89a文件内部写入 php 一句话尝试上传不能只校验文件头必要时做图片二次渲染图片压缩中UPLOAD_010上传文件访问权限测试上传后的文件可直接被外网访问上传正常图片获取访问 URL检查是否可以遍历上传目录列举所有上传文件上传文件设置独立存储增加访问鉴权禁止目录浏览中文件上传 Payload 简单示例仅授权靶场php 一句话?php eval($_POST[cmd]);?图片马GIF89a 一句话脚本用于绕过文件头检测五、通用测试流程与测试顺序建议信息收集阶段抓包梳理所有接口、参数、输入点标记所有用户可控位置会话与 Cookie 测试优先会话是所有接口的基础输入类漏洞XSS 测试 → SQL 注入测试 → 文件上传自动化扫描先行Xray、AWVS 扫一遍收集告警人工逐个复现验证剔除误报漏洞验证保留完整请求包、响应包、截图记录复现步骤输出测试报告漏洞描述、复现步骤、影响范围、修复建议。重要提醒扫描器只能发现浅层漏洞DOM XSS、业务逻辑类、部分盲注、文件上传复杂绕过自动化工具经常漏报人工用例是核心。六、漏洞修复通用总结会话管理登录时重置 SessionIDCookie 配置 HttpOnly、Secure、SameSite会话设置闲置超时退出登录销毁服务端会话JWT 必须校验签名密钥不可泄露高危操作增加二次验证。XSS输出到 HTML 页面做 HTML 实体编码输出到 JS 上下文做 JS 编码优先部署 CSP 策略输入过滤不要依赖前端后端校验区分存储型 XSS 重点防护评论、昵称、私信等持久化输入。SQL 注入禁止字符串拼接 SQL统一使用预编译参数化查询数据库账号最小权限关闭详细数据库报错对外输出排序、分页字段使用白名单控制禁止用户直接传入字段名。文件上传采用后缀白名单仅允许图片 / 文档等业务需要的格式后端校验文件真实内容不能依靠前端、MIME 头、文件名上传目录关闭脚本执行权限文件统一重命名禁止使用用户原始文件名防止路径遍历。七、结尾这份测试用例清单覆盖 Web 安全最核心的四大模块在企业安全测试、渗透测试、SRC 挖掘中都可以直接拿来逐项执行。安全测试的核心不是记住 Payload而是找到所有用户可控输入点理解输入如何被后端处理。很多漏洞不是单一 Payload 直接打穿而是多层过滤组合绕过需要结合业务场景灵活调整测试思路。后续我会继续更新更多模块CSRF、SSRF、目录遍历、命令注入、越权、业务逻辑漏洞测试用例合集。本文为 Web 安全测试学习笔记适合安全测试、渗透测试、SRC 挖洞学习。如果对你有帮助欢迎点赞收藏。了解网络安全首先要搞清楚下面这些前提网络安全到底包含哪些技术是否需要会编程网络安全行业有哪些职业方向“我”该如何选择网络安全的职业发展和成长路线是什么如果你是准备学习网络安全黑客或者正在学习下面这些你应该能用得上①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】