接口测试-- 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. 安全开发必须用预编译 / #{} 防止注入
相关推荐
倔强的石头_2 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横2 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence3 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神3 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据4 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡4 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧4 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon4 天前
SQL学习指南——视图
数据库·sql