接口测试-- SQL 注入测试(安全合规版)

目录

一、核心测试场景(最常用、无破坏性)

[1. 最简单的判断测试(最基础)](#1. 最简单的判断测试(最基础))

[2. 恒真测试(判断是否可绕过逻辑)](#2. 恒真测试(判断是否可绕过逻辑))

[3. 注释测试(判断是否能截断 SQL)](#3. 注释测试(判断是否能截断 SQL))

[二、常用安全测试 Payload(无破坏性合集)](#二、常用安全测试 Payload(无破坏性合集))

三、不同接口位置测试

四、安全判断标准(你可以直接用)

五、防御方法(开发必看)

总结


我会给你合法、用于安全自检的 SQL 注入测试方法 ,仅适用于你自己拥有权限的系统 / 接口,严禁用于未授权系统!

一、核心测试场景(最常用、无破坏性)

专门用于检测接口是否存在 SQL 注入漏洞,不会删库、不会破坏数据。

1. 最简单的判断测试(最基础)

在接口参数中传入:

复制代码
'

判断规则

  • 返回数据库报错 (如 You have an error in your SQL syntax)= 大概率存在注入
  • 返回正常结果 / 屏蔽报错 = 可能安全

2. 恒真测试(判断是否可绕过逻辑)

参数值:

复制代码
' OR '1'='1

作用

  • 若接口直接拼接 SQL,会变成: sql

    复制代码
    SELECT * FROM user WHERE username='' OR '1'='1'
  • 结果:返回全部数据 / 登录绕过 = 存在高危注入


3. 注释测试(判断是否能截断 SQL)

参数值:

sql 复制代码
admin' -- 
admin' # 

作用

  • 把后面的 SQL 语句注释掉,常用于登录绕过:

    sql 复制代码
    SELECT * FROM user WHERE username='admin' -- ' AND password='xxx'

二、常用安全测试 Payload(无破坏性合集)

适合GET/POST/JSON 接口参数测试:

复制代码
'
"
' OR 1=1--
" OR 1=1--
' OR '1'='1'--
admin' -- 
' UNION SELECT NULL,NULL--
' AND SLEEP(5)--  (盲注测试)

三、不同接口位置测试

  1. URL 参数

    复制代码
    https://xxx.com/api/user?id=1'
  2. POST 表单参数

    复制代码
    username=test'&password=123
  3. JSON 接口

    复制代码
    {"username":"test'","age":18}

四、安全判断标准(你可以直接用)

现象 结论
直接返回数据库错误 高风险,存在注入
输入 ' OR 1=1-- 返回全部数据 高危注入
输入 ' AND SLEEP(5)-- 延迟 5 秒响应 时间盲注漏洞
无论输入什么都正常 / 统一报错 大概率安全

五、防御方法(开发必看)

  1. 使用预编译语句(PreparedStatement)
  2. ORM 框架(MyBatis/MyBatis-Plus 用 #{} 而非 ${})
  3. 参数过滤与黑名单
  4. 关闭数据库错误回显

总结

  1. 我提供的是自检用安全测试方法,仅用于你有权限的系统
  2. 最基础测试:参数加 ' 看是否报数据库错
  3. 最有效测试:' OR '1'='1 看是否返回全部数据
  4. 安全开发必须用预编译 / #{} 防止注入
相关推荐
ccddsdsdfsdf5 小时前
DBeaver怎么链接mongoDB
数据库·mongodb
丷丩6 小时前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join
星夜夏空996 小时前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
TheRouter7 小时前
AI Agent 记忆体系建设实战:短期、长期与工作记忆的工程实现
数据库·人工智能·oracle
Omics Pro7 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
唐青枫7 小时前
MySQL EXISTS 详解:存在性判断、NOT EXISTS 与实战示例
sql·mysql
JAVA面经实录9178 小时前
Hibernate面试题库
数据库·oracle·hibernate
迷枫7129 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库
Mr.Daozhi10 小时前
RAG 进阶实战:跑通 Demo 后我连续翻了 6 次车,逐一修复才真正可用(含 Gradio Web 版)
前端·数据库·langchain·大模型·gradio·rag·科研工具
小程故事多_8010 小时前
Claude Code自定义workflow skills用法
数据库·人工智能·智能体