
Web 安全测试用例全汇总SSRF、目录遍历、命令注入、CSRF前言在上一篇 CSDN 文章我们整理了会话管理、XSS、SQL 注入、文件上传四大模块安全测试用例。本文继续补齐 Web 安全另外四个高频高危漏洞SSRF 服务端请求伪造、目录遍历路径穿越、命令注入、CSRF 跨站请求伪造。很多安全测试、SRC 挖洞新手很容易忽略这四类漏洞。SSRF 可以打到内网资产、云元数据目录遍历直接读取服务器敏感配置文件命令注入拿到服务器权限CSRF 不需要拿到 Cookie诱导用户访问页面就能执行业务操作。本文采用统一表格用例格式包含预置条件、操作步骤、预期结果、风险等级附带 Payload、绕过技巧、漏洞判定标准、修复方案。可以直接作为安全测试 Checklist渗透测试、代码审计、SRC 漏洞挖掘都能拿来使用。免责声明本文所有内容仅用于授权靶场、企业授权范围内安全学习与安全测试。禁止在未取得书面授权的业务网站执行任何漏洞测试未经授权的渗透、探测属于违法行为需要承担对应的法律责任。一、SSRF 服务端请求伪造测试用例模块说明SSRFServer-Side Request Forgery服务端请求伪造攻击者控制参数让服务器发起请求访问任意地址。正常业务场景图片预览、URL 转摘要、爬虫、远程资源拉取、图片下载接口。危害探测内网端口、访问云服务器元数据、读取内网服务、配合 gopher 协议执行 Redis 等服务命令。测试前置条件找到接收 url 参数的接口Burp 抓包准备 Collaborator 外带平台用于盲 SSRF 验证。用例编号测试项预置条件操作步骤预期结果风险等级SSRF_001基础 SSRF 探测访问外网地址接口接收 url 参数如?url1. 传入可控 url 参数填写自己的外带 Collaborator 地址2. 提交请求观察外带平台是否收到服务器发来请求后端禁止服务器访问任意外部地址拒绝请求或者白名单校验域名高SSRF_002访问本地回环地址 127.0.0.1支持传入 url 参数1. 参数填入http://127.0.0.12. 尝试访问本地端口80、3306、6379 等禁止访问 127.0.0.1、内网网段直接拦截请求高SSRF_003IP 地址编码绕过测试十进制、八进制、简写 IP存在黑名单过滤 127.0.0.1Payloadhttp://2130706433、http://127.1、http://017700000001不能只做简单字符串黑名单需要解析真实 IP 再做网段校验高SSRF_004协议绕过测试file、gopher、dict接口支持服务端请求尝试协议file:///etc/passwd、gopher://127.0.0.1:6379/_xxx限制协议只允许 http/https禁用 file、gopher、dict 等危险协议高SSRF_005URL 符号、# 锚点绕过简单正则匹配域名Payloadhttp://baidu.com127.0.0.1、http://baidu.com#127.0.0.1完整解析 host不能简单截取字符串做域名判断高SSRF_006云服务器元数据访问测试阿里云 / 腾讯云 / AWS云主机部署业务传入云元数据地址http://169.254.169.254/latest/meta-data禁止访问元数据网段防止泄露服务器密钥、实例信息高SSRF_007DNS 重绑定DNS Rebinding绕过只做一次 DNS 解析校验使用 rebinding 域名第一次解析为公网 IP第二次解析内网 IP多次 DNS 解析校验或者解析完成后锁定 IP防止 DNS 重绑定绕过高SSRF_008302 重定向链绕过 SSRF 白名单允许白名单域名白名单域名存在开放重定向传入白名单域名的重定向接口目标地址指向内网后端要跟随重定向时每一次跳转后的 IP 都需要再次校验网段中SSRF_009POST/JSON 参数 SSRF 测试url 参数放在请求 JSON 体内在 JSON 请求 body 内传入内网地址Burp 重放测试所有位置的 url 参数统一校验GET、POST、JSON 都不能遗漏高SSRF_010端口扫描探测内网端口接口可返回请求结果 / 超时信息循环修改内网 IP 的端口根据页面返回、超时差异判断端口是否开放限制出站端口范围禁止访问高危端口6379、22、3306中SSRF 常用 Payload靶场授权环境http://127.0.0.1 http://127.1 http://2130706433 file:///etc/passwd http://169.254.169.254/latest/meta-data gopher://127.0.0.1:6379/_小提示盲 SSRF 没有回显优先使用 Burp Collaborator判断是否由服务器主动发起请求而不是浏览器请求。二、目录遍历路径穿越测试用例模块说明目录遍历又称路径穿越。开发者直接把用户输入拼接成文件路径攻击者使用../向上跳转目录读取服务器任意文件。典型场景文件下载、预览、读取配置、图片加载接口。可读取文件/etc/passwd、/etc/shadow、web.config、application.properties、数据库配置文件、密钥文件。用例编号测试项预置条件操作步骤预期结果风险等级PATH_001基础…/ 路径穿越测试接口接收文件名、path 参数例如?filetest.txt1. 修改参数为../etc/passwd2. URL 编码..%2F..%2Fetc%2Fpasswd3. 观察页面是否返回文件内容过滤../规范化文件路径限制文件访问在指定目录内高PATH_002多层路径嵌套绕过简单过滤../只替换一次Payload....//....//etc/passwd、..\/..\/etc/passwd反斜杠 Windows不能使用简单字符串替换需要路径标准化解析高PATH_003绝对路径读取测试文件读取接口直接传入绝对路径Linux/etc/passwdWindowsC:\windows\system32\drivers\etc\hosts禁止直接接收绝对路径文件只能限定在业务指定目录下高PATH_004空字节截断绕过老版本 PHP旧 PHP 环境文件读取带后缀拼接Payload../../etc/passwd%00.jpg后端自动拼接.jpg 后缀禁止使用 %00 截断更新中间件版本后端统一校验文件后缀高PATH_005URL 双重编码绕过只做一次 URL 解码Payload..%252F..%252Fetc%252Fpasswd双重编码/先统一解码再进行路径校验不要边解码边校验中PATH_006Windows 系统路径遍历测试Windows 服务器业务Payload../../windows/win.ini、..\..\web.config同时过滤正反斜杠Windows 和 Linux 路径都要防护高PATH_007文件后缀拼接场景测试后端强制拼接文件后缀例如接口自动拼接.txt尝试各种截断、注入方式使用白名单文件名不直接拼接用户可控参数为文件名高PATH_008目录遍历 文件下载组合测试文件下载接口id 映射文件名修改文件参数尝试读取 web 源码、数据库配置文件文件存储使用随机文件名业务 id 映射不直接使用原始文件路径高PATH_009路径规范化绕过特殊字符支持./当前目录Payload././../etc/passwd调用系统路径标准化函数解析完整真实路径后判断是否在允许目录中PATH_010目录浏览漏洞测试访问目录地址无默认首页访问/static/查看是否列出目录下全部文件列表关闭 Web 服务器目录浏览功能禁止列出目录文件清单低目录遍历 Payload../etc/passwd ..%2F..%2Fetc%2Fpasswd ....//....//etc/passwd C:\windows\system32\drivers\etc\hosts ../../web.config注意很多接口会限制后缀不要只测试 txt还可以尝试读取各类配置文件。三、命令注入测试用例Command Injection模块说明命令注入用户可控参数直接拼接到操作系统命令中执行。常见场景ping 检测、ip 查询、导出、压缩、服务器运维工具。攻击者可以执行系统命令读取文件、查看进程、上传文件直接获取服务器权限。区分有回显命令注入和无回显盲命令注入。用例编号测试项预置条件操作步骤预期结果风险等级CMD_001基础命令拼接注入测试ping 类接口接收 ip 参数原始请求?ip127.0.0.1修改 payload127.0.0.1;whoami127.0.0.1whoami127.0.0.1|whoami禁止直接拼接用户输入到系统命令优先使用 API 替代调用系统命令高CMD_002换行符分隔命令绕过%0a过滤; |等符号Payload127.0.0.1%0awhoamiURL 编码换行符执行新命令过滤换行符、回车符严格过滤命令分隔符高CMD_003盲命令注入sleep 延时判断页面无命令执行回显Payload127.0.0.1;sleep 5观察请求响应时间是否延迟 5 秒拦截恶意命令不允许执行 sleep 等耗时命令高CMD_004空格过滤绕过测试WAF 过滤空格Payloadwhoami${IFS}、ls%09-latab 代替空格禁止用户可控参数进入系统命令黑名单绕过手段很多不推荐黑名单防护高CMD_005引号、反引号命令混淆绕过简单黑名单过滤命令关键词Payloadwhoami、whoami、who\ami黑名单容易被变形绕过优先使用白名单禁止调用 shell 执行命令高CMD_006Windows 系统命令注入测试部署在 Windows 服务器Payload127.0.0.1whoami、127.0.0.1dir、127.0.0.1%0atype C:\windows\win.iniWindows 系统同样禁止拼接参数到 cmd/powershell 命令高CMD_007POST/JSON 请求命令注入参数放在 POST 请求体 JSONJSON 参数填入注入 payloadBurp 重放发包测试POST、JSON 参数同样做严格校验不要只校验 GET 参数高CMD_008通配符、变量替换绕过过滤过滤部分字母关键词Payloadc${}at /etc/passwd、l?s -la不要依靠关键字黑名单底层避免调用 shell 执行系统命令高CMD_009命令输出外带盲注入无回显服务器可出站执行 curl 把结果发送到自己的外带服务器验证命令执行成功限制服务器出站访问禁止 shell 命令执行高CMD_010逃逸过滤Base64 编码执行命令过滤大量关键字Payloadecho “d2hvYW1p”base64 -dbash解码后执行 whoami禁止传入的参数可以被解析为 shell 脚本高命令注入常用分隔符;顺序执行、后台执行、前面成功才执行后面、|管道符、||前面失败执行后面、%0a换行、%0d回车重要提醒防御命令注入黑名单几乎防不住最佳方案不调用系统 shell使用编程语言内置函数实现功能。四、CSRF 跨站请求伪造测试用例模块说明CSRF 跨站请求伪造利用用户当前浏览器有效 Cookie诱导用户访问恶意页面在用户不知情的情况下执行业务操作。前提用户登录目标网站Cookie 保存在浏览器网站没有 CSRF 防护。高危场景修改密码、修改手机号、转账、新增管理员、删除数据、绑定邮箱。用例编号测试项预置条件操作步骤预期结果风险等级CSRF_001GET 请求 CSRF 基础测试存在 GET 状态修改接口例如修改资料1. 登录账号保持 Cookie 有效2. 新建恶意 html 页面img 标签触发 GET 请求3. 在当前登录浏览器打开恶意页面观察业务是否执行成功修改状态的接口禁止使用 GET 请求增加 CSRF Token 校验中 / 高CSRF_002POST 表单 CSRF 测试POST 提交表单修改用户信息1. 抓包正常 POST 请求2. 构造自动提交 form 的 html 页面3. 登录状态浏览器打开页面看请求是否执行成功POST 接口必须携带随机 CSRF Token后端校验 Token 合法性高CSRF_003CSRF Token 删除 / 篡改测试接口携带 csrf token 参数1. 正常请求拿到 token2. 删除 token、置空 token、替换为随机字符串重放请求缺少 / 错误 Token后端直接拒绝执行业务操作高CSRF_004仅校验 Referer 头绕过测试后端只校验 Referer 请求头1. 尝试删除 Referer 头2. 测试是否允许空 Referer3. 测试子域名伪造 Referer不能只依赖 RefererReferer 可被前端控制优先使用 CSRF Token中CSRF_005仅校验 Origin 请求头测试后端依靠 Origin 头做跨域校验修改 Origin 头测试是否能绕过校验Origin 可以被篡改不能单独作为 CSRF 防护手段中CSRF_006JSON 格式 POST CSRF 测试text/plainJSON 提交接口构造 text/plain 类型表单提交 JSON 数据绕过前端 CORS 限制JSON 接口增加 Token 校验严格校验 Content-Type高CSRF_007Cookie SameSite 属性防护检测登录身份 Cookie查看 Set-Cookie 头检查 SameSiteLax/Strict敏感操作 Cookie 设置 SameSite阻止跨站请求携带 Cookie中CSRF_008敏感高危业务 CSRF 测试改密码、新增管理员高危操作接口构造 PoC 页面测试是否可以直接修改密码、新增管理员账号高危操作除 CSRF Token 外增加短信验证码、密码二次验证高CSRF_009请求方法绕过测试GET/POST 转换后端只防护 POSTGET 无防护原接口是 POST尝试改为 GET 请求参数放到 URL 中执行后端严格校验请求方法不自动兼容 GET/POST中CSRF_010多子域名场景 CSRF 测试业务存在多个子域名利用同根域名下其他站点发起跨站请求测试 Cookie 是否携带合理配置 Cookie Domain 范围缩小 Cookie 作用域中CSRF 的 POST PoC 模板靶场测试html body form actionhttps://target.com/api/changeEmail methodPOST input nameemail valuehackertest.com/ /form scriptdocument.forms[0].submit();/script /body /html五、通用测试流程、漏洞判定要点完整测试顺序建议梳理业务接口区分只读查询接口、状态修改接口增删改增删改接口优先级更高。SSRF优先找图片预览、远程资源拉取接口盲 SSRF 依靠外带平台验证。目录遍历文件下载、文件读取接口是重灾区。命令注入ping、网络检测、解压、导出类接口优先测试。CSRF只测会修改业务状态的接口纯查询接口 CSRF 风险低。漏洞真假判定✅ SSRF服务器主动发起请求不是浏览器请求外带平台收到目标服务器的请求判定漏洞。✅ 目录遍历成功读取非业务预期的系统文件内容不是返回报错页面。✅ 命令注入成功执行系统命令回显结果或者延时、外带证明命令执行。✅ CSRF在用户保持登录 Cookie 的浏览器打开恶意页面无需用户额外确认业务操作自动完成。❌ 误报场景SSRF请求是浏览器直接发起不是服务端目录遍历返回报错没有任何文件内容CSRF必须手动点击按钮不能自动触发接口需要验证码、二次密码。自动化扫描注意事项Xray、AWVS 可以扫描出部分简单 Payload 的漏洞但是很多绕过场景、盲 SSRF、盲命令注入扫描器容易漏报。这类漏洞人工测试、业务场景分析是核心扫描器仅作为辅助。六、统一修复方案汇总SSRF 修复建议协议白名单仅允许http/https禁用 file、gopher、dict 等危险协议请求目标 IP 解析后做网段白名单禁止访问内网、回环、云元数据网段限制出站端口只开放 80、443 常规 web 端口域名解析时多次校验 IP防御 DNS 重绑定业务尽量不要由服务器去拉取外部资源优先前端处理。目录遍历修复建议用户输入文件名使用白名单不要直接拼接路径使用系统函数标准化路径校验解析后的真实路径强制锁定在业务指定目录上传 / 下载文件使用数据库 id 映射随机文件名不暴露原始文件路径过滤../、正反斜杠禁止接收绝对路径关闭 Web 服务器目录浏览功能。命令注入修复建议尽量不调用操作系统 shell 命令使用编程语言内置 API 实现功能如果必须调用系统命令使用参数化 APIescapeshellarg不要拼接字符串严格过滤特殊符号; | \、换行回车符不依赖简单黑名单执行命令使用最小权限账号降低危害。CSRF 修复建议所有修改状态的接口POST/PUT/DELETE增加一次性随机 CSRF TokenToken 绑定当前用户会话敏感高危操作修改密码、转账、绑定手机增加短信验证码二次校验Cookie 设置 SameSiteLax/Strict禁止 GET 请求执行修改业务状态操作不要单纯依靠 Referer、Origin 头作为唯一防护手段。七、结尾本篇和上一篇《Web 安全测试用例全汇总会话、XSS、注入、文件上传》组合在一起就是一套完整 Web 基础漏洞安全测试清单。在 SRC 漏洞挖掘和渗透测试中这四类漏洞经常容易被忽略特别是 SSRF 和盲命令注入没有页面回显很容易漏掉。挖洞的时候不要只靠扫描器结合业务场景思考用户可控输入点不断尝试各类 Payload 和绕过方式。后续计划继续更新业务逻辑漏洞、XXE、反序列化、CORS、开放重定向等测试用例合集持续完善整套安全测试手册。本文为 Web 安全学习笔记适合安全测试工程师、渗透测试、SRC 漏洞挖掘、面试复习。如果对你有帮助欢迎点赞收藏。了解网络安全首先要搞清楚下面这些前提网络安全到底包含哪些技术是否需要会编程网络安全行业有哪些职业方向“我”该如何选择网络安全的职业发展和成长路线是什么如果你是准备学习网络安全黑客或者正在学习下面这些你应该能用得上①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析一、网络安全黑客学习路线网络安全黑客学习路线形成网络安全领域所有的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。二、网络安全教程视频我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了。三、网络安全CTF实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这里带来的是CTFSRC资料HW资料毕竟实战是检验真理的唯一标准嘛~四、网络安全面试题最后我们所有的作为都是为就业服务的所以关键的临门一脚就是咱们的面试题内容所以面试题板块是咱们不可或缺的部分这里我给大家准备的就是我在面试期间准备的资料。网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】