一、Web渗透测试标准流程(合规前置)
渗透测试的前提:拿到书面授权,划定测试范围,约定时间窗口、禁止破坏性操作。标准流程分为5步:
- 信息收集:子域名、目录扫描、中间件指纹、接口梳理、JS源码泄露、敏感备份文件;工具:Nmap、Subfinder、Dirsearch、Burp Suite
- 漏洞探测:主动扫描+手工Fuzz,验证扫描器告警,排除误报
- 漏洞验证利用:构造Payload验证危害,判断是否可以读取数据、上传后门、执行命令
- 横向移动与权限维持:拿到低权限后尝试提权、读取配置、数据库脱库
- 清理痕迹+输出报告:清除测试文件、整理风险等级、修复建议、复测方案
很多开发者只依赖自动化扫描器,很容易漏掉业务逻辑漏洞;扫描器只能发现特征型漏洞,越权、支付逻辑、验证码绕过这类问题必须手工测试。
二、高频Web漏洞:利用方式+实战防御
SQL注入(注入类漏洞)
利用原理:用户输入直接拼接进SQL语句,攻击者可以修改SQL逻辑,查询、修改、删除数据库数据。
危害:拖库、获取管理员账号密码、读取服务器本地文件,部分场景可写入Webshell。
防御方案
✅ 优先使用预编译语句(PDO、PreparedStatement)、ORM框架,从语法层面隔离输入和SQL逻辑,这是根治方案
✅ 数据库账号最小权限,禁止普通业务账号拥有into outfile、xp_cmdshell等高危险权限
✅ WAF开启SQL注入防护规则,配置虚拟补丁,漏洞修复前临时拦截攻击载荷
✅ 数据库审计,监控批量查询、异常导出行为XSS跨站脚本
分为反射型、存储型、DOM型。
利用方式:注入JS脚本,窃取Cookie、劫持会话、钓鱼、跳转恶意页面。
存储型XSS危害最大,比如评论区、留言板,其他用户访问就触发攻击。
防御方案
✅ 输出编码:根据上下文(HTML/JS/URL/CSS)做对应转义,不是简单过滤标签
✅ 重要Cookie设置HttpOnly;Secure,防止JS读取Cookie
✅ 开启CSP内容安全策略,限制脚本加载源
✅ WAF拦截XSS特征载荷,对富文本使用安全过滤组件(AntiSamy)- 文件上传漏洞
利用思路:前端校验后缀、MIME类型校验、黑名单绕过,上传php/jsp/asp脚本后门,拿到服务器权限。
常见绕过:后缀双写php5、图片马、修改Content-Type、路径解析漏洞。
防御方案
✅ 服务端白名单校验,只允许指定后缀(jpg/png等),拒绝用前端校验
✅ 校验文件头,检测文件真实内容,防止图片马
✅ 上传目录禁止脚本执行权限,独立存储、不和业务代码混放
✅ 上传文件随机重命名,关闭目录浏览,不能直接通过URL访问 - 失效的访问控制(越权漏洞,业务高频)
这类漏洞扫描器很难扫出来,属于业务逻辑漏洞。
- 水平越权:A用户修改参数,查看B用户订单、信息
- 垂直越权:普通用户访问管理员接口、后台页面
利用方式:修改ID、userid、订单号等参数,直接访问未授权接口。
防御方案
✅ 所有接口后端强制鉴权,不能只靠前端隐藏按钮
✅ 遵循默认拒绝原则,公共资源以外全部校验权限
✅ 记录归属关系:只能操作属于自己的数据,不要依赖客户端可控参数
5.CSRF跨站请求伪造
原理:用户登录状态下,访问攻击者构造的页面,自动发起请求,完成修改密码、绑定手机号等操作。
防御方案
✅ 核心接口添加一次性、随机的CSRF Token,每次请求校验、及时刷新
✅ 校验Referer/Origin,辅助防护
✅ 敏感操作增加验证码、二次确认
6.命令注入 / 路径穿越(目录遍历)
路径穿越Payload:?filename=../../etc/passwd,读取服务器敏感配置文件。
命令注入:输入直接拼入系统命令,|whoami、&& id。
防御方案
✅ 禁止直接将用户输入传入系统命令,优先使用安全API
✅ 路径使用白名单,对输入路径做规范化,过滤../
✅ 中间件配置open_basedir,限制脚本访问目录范围
7.失效身份认证(弱口令、暴力破解、会话管理不当)
利用:弱口令、验证码可复用、会话固定、JWT配置缺陷、无登录限流。
防御:强密码策略、登录失败限流、MFA多因素认证、会话ID随机、超时自动登出,JWT做好签名校验。
8.SSRF、反序列化、框架漏洞
Spring、Shiro、Fastjson等组件漏洞,是近几年入侵高发入口。
防御:组件版本及时升级,RASP运行时防护,WAF配置对应组件漏洞规则,减少第三方组件暴露面。
三、云上防御体系
单一代码修复不足以保障安全,一套分层防护架构:
- 边缘层:
前置清洗SQL注入、XSS、上传攻击、CC,支持虚拟补丁,漏洞修复窗口期拦截攻击;接入后隐藏源站IP,避免攻击者直连源站。 - 应用层:RASP应用防护
探针部署在应用内部,运行时检测内存马、反序列化、框架漏洞,弥补WAF无法识别的应用层深层攻击,不需要大量改代码。 - 主机层:云安全中心
基线检查、木马查杀、异常进程监控、漏洞补丁管理,服务器侧兜底。 - 数据层:数据库审计、加密存储
敏感数据加密、密码使用bcrypt/Argon2哈希,禁止明文存储。 - 运营层:定期渗透+漏洞扫描
季度授权渗透、常态化漏洞扫描,形成“发现-修复-复测”闭环。
四、渗透测试常见误区
1.拿到漏洞直接上传大马、提权破坏业务:合规测试严禁破坏性操作
2.依赖WAF就不用代码修复:WAF是应急防护,虚拟补丁不能替代代码修复
3.只做外部渗透,忽略业务逻辑漏洞:越权、逻辑漏洞往往是数据泄露的主要入口
4.扫描出漏洞放着不修复,只靠规则拦截:攻击者持续研究绕过WAF的方法
Web攻防是动态对抗,渗透测试的意义不是找漏洞秀技术,而是提前站在攻击者视角,发现业务短板。
开发、运维、安全团队最好形成共识:代码安全是根本,WAF、RASP、主机防护是兜底手段,定期渗透与巡检是常态化验证方式。