You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL注入语句(select*from(select+sleep(10)union/**/select+1)a)解析

针对该SQL注入探测载荷的解答

你从日志里抓到的攻击载荷如下:

(select*from(select+sleep(10)union/**/select+1)a)

初步判断校正

你的判断里有两个错误点:

  1. 末尾的a根本不是用来探测以a开头的表。SQL语法要求所有FROM后面跟的嵌套子查询必须定义别名,这里攻击者只是随手写了个最短的单字符a凑合法语法,和你数据库里存了什么表没有关系。
  2. 不存在“UNION匹配到内容sleep才会执行”的逻辑。这就是个最基础的时间盲注探活payload:只要注入点真的存在、这段语句能被数据库正常解析,sleep(10)就会执行,攻击者只需要看发出去的请求是不是延迟了10秒才返回,就能确认有没有注入漏洞,根本不需要匹配你库里的任何内容。
    你判断站点没被入侵的结论是对的。这种payload全是自动化漏洞扫描器批量扫全网的时候发的通用包,既没有后续异常请求,你自己测试也复现不了执行,说明请求早就被你的站点防护拦下来了,根本没碰到数据库,没有实际风险。

两个细节疑问解答

  • 语句里的+是URL编码格式的空格。HTTP查询字符串里不能直接传裸空格,常规转义方式要么是%20要么就是+,这些加号在请求被业务逻辑处理的时候会被解码成空格,对应SQL语句里关键字、函数之间的必要间隔,比如select+sleep(10)解码后就是正常的select sleep(10)。
  • 插在中间的/**/是用来绕过防护规则的。这是SQL支持的空注释语法,数据库解析语句的时候会直接跳过注释内容,完全不影响语句正常执行。很多低配WAF、注入防护规则就是靠匹配union select这种连续的敏感关键字拦截攻击,在两个关键字中间塞个空注释,就能把连续的特征串拆成union/**/select,直接绕开这种基于字符串匹配的检测逻辑。

内容的提问来源于stack exchange,提问作者James Paterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:45:31