news 2026/4/23 11:38:14

sql报错注入常见7个函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sql报错注入常见7个函数

文章目录

    • 1.ST_LatFromGeoHash()(mysql>=5.7.x)
    • 2.ST_LongFromGeoHash()(mysql>=5.7.x)
    • 3.GTID(mysql>=5.6.x-显错<=200)
    • 4.ST_PointFromGeoHash()(mysql>=5.7)
    • 5.updatexml
    • 6.extravalue
    • 7.floor(8.x>mysql>5.0)
      • 7.1、rand()
      • 7.2、floor()
      • 7.3、group_by()
      • 7.4、count()
      • 7.5、报错分析

1.ST_LatFromGeoHash()(mysql>=5.7.x)

  • ST_LatFromGeoHash 是 MySQL 的空间函数,用来从 GeoHash 字符串中解析出纬度,正常用法是对合法的 geohash 字符串做解码,返回一个double 值,传进去的不是一个合法的 geohash 字符串,MySQL 会抛出错误

  • concat(A, B, C) 的作用就是把 A、B、C 拼成一个字符串。0x7e 是 ~ 的十六进制写法:字符 ~的 ASCII 是 126,十六进制就是 0x7E。

  • 用 concat 把 (select usr()) 的结果变成 ~ 用户名 ~;再把这个非 GeoHash 字符串喂给 ST_LatFromGeoHash;让数据库解析出错,在错误信息里把 ~ 用户名 ~打出来,从而窃取当前数据库用户名。

andST_LatFromGeoHash(concat(0x7e,(selectusr()),0x7e))

2.ST_LongFromGeoHash()(mysql>=5.7.x)

  • 与1类似
andST_LongFromGeoHash(concat(0x7e,(selectusr()),0x7e))

3.GTID(mysql>=5.6.x-显错<=200)

  • 此处不详细介绍
gtid_subset') or gtid_subset (concat(0x7e,(select group_concat(user,':',password) from manage),0x7e ),1)--+ gtid_subtract ')orgtid_subtract(concat(0x7e,(selectgroup_concat(user,':',password)frommanage),0x7e),1)--+

4.ST_PointFromGeoHash()(mysql>=5.7)

  • ST_PointFromGeoHash(geo_hash, srid):MySQL 的空间函数,用来将一个 GeoHash 字符串转换为对应的经纬度点(POINT 对象)。第一个参数 geo_hash 应该是一个合法的 GeoHash 字符串(如 s00tw)。第二个参数 srid 是空间参考系统 ID(通常填 0 或 4326 等)。

  • 当 MySQL 尝试解析这个非法的 GeoHash 时,就会抛出错误。MySQL 的报错信息里会包含它解析失败的那个非法字符串。

')orST_PointFromGeoHash(version(),1)--+

5.updatexml

updatexml(1,concat(0x7e,注入语句,0x7e),1)

6.extravalue

extractvalue(1,concat(0x7e,注入语句,0x7e))

7.floor(8.x>mysql>5.0)

')or(select1from(selectcount(*),concat(version(),floor(rand(0)*2))asxfrominformation_schema.tablesgroupbyx)a)--+

as 可要可不要 取别名

7.1、rand()

  • rand()可以产生一个0-1之间的随机数

  • 当提供随机数的种子,伪随机数、RAND(N)带参数 N:把 N 当成随机数种子(seed),初始化伪随机数生成器;只要 N 相同,就会得到完全一样的随机序列,适合可复现的随机行为

  • select rand(0) from users,从 users 表中为每一行数据生成一个随机数。虽然叫随机数,但指定了种子(这里是 0),生成的数值序列就是固定的

7.2、floor()

  • 向下取整

  • 当select floor ( rand( 0 ) )from users 全部得到0

  • select floor(rand(0)*2) from users前六位得到011011

7.3、group_by()

  • GROUP BY 用来将相同的数据归纳到一组
  • select floor ( rand ( 0 ) * 2 ) as x from users group by x 为0和1

7.4、count()

  • count(*):统计总行数(包括 NULL 值)
  • count(字段名):统计该字段不为 NULL 的行数。

7.5、报错分析

  • select count(*),floor ( rand ( 0 ) * 2 ) as x from users group by x;
  • 在 GROUP BY 建立临时表的过程中,MySQL 会多次计算 RAND() 的值。
  • 查询数据时,首先在虚拟表查看是否存在,存在计数值+1,不存在创建该分组
  • 当 MySQL 执行 GROUP BY x 时,它会创建一个临时的虚拟表。这个表有一个主键,就是 x(也就是我们计算出的 0 或 1),强行要求分组键必须唯一
key/xcount(*)
  1. floor(rand(0)*2) 会生成固定的序列011011,查询第一条数据0,(第一次计算)
xfloor(rand(0)*2)count(*)
0
  1. 检查虚拟表,表是空的需要执行插入操作,调用floor(rand(0)*2)(第2次计算)得到1插入
xfloor(rand(0)*2)count(*)
0
111
  1. 查询第二条数据floor(rand(0)*2)(第三次计算)1,查询虚拟表1已经存在,计数器增加
xfloor(rand(0)*2)count(*)
0
111
112

4.查询第三条数据floor(rand(0)*2)(第四次计算)0,查询虚拟表0不存在,执行插入再次调用floor(rand(0)*2)(第五次计算)1,1已经存在

xfloor(rand(0)*2)count(*)
0
111
112
0
1?1
  1. 试图写入主键 1,数据库发现虚拟表里主键 1 ,就会抛出错误:ERROR 1062 (23000): Duplicate entry ‘1’ for key ‘group_key’
  • 数据源必须有足够多的行数(>= 3 行)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 4:02:59

SGLang+Docker组合实战,部署效率提升显著

SGLangDocker组合实战&#xff0c;部署效率提升显著 1. 为什么需要SGLang&#xff1f;直击大模型部署的“卡点” 你有没有遇到过这样的情况&#xff1a; 模型明明跑在A100上&#xff0c;但QPS&#xff08;每秒请求数&#xff09;却卡在20出不来&#xff1b;多轮对话时&#…

作者头像 李华
网站建设 2026/4/10 0:06:25

批量处理多个音频?科哥镜像输出目录结构说明

批量处理多个音频&#xff1f;科哥镜像输出目录结构说明 1. 为什么需要关注输出目录结构&#xff1f; 你刚部署好 Emotion2Vec Large 语音情感识别系统&#xff0c;上传了第一个音频&#xff0c;点击“ 开始识别”&#xff0c;几秒后右侧面板显示了“&#x1f60a; 快乐 (Happy…

作者头像 李华
网站建设 2026/4/22 9:56:25

fft npainting lama画笔技巧分享,精准标注不翻车

fft npainting lama画笔技巧分享&#xff0c;精准标注不翻车 1. 为什么画笔标注决定修复成败 很多人用过图像修复工具后发现&#xff1a;同样的模型、同样的图片&#xff0c;别人修复得干净自然&#xff0c;自己却总出现色块、纹理断裂、边缘生硬甚至“鬼影”。问题往往不出在…

作者头像 李华
网站建设 2026/4/19 0:24:58

3步解锁鸣潮智能辅助:让你彻底告别重复操作提升游戏效率

3步解锁鸣潮智能辅助&#xff1a;让你彻底告别重复操作提升游戏效率 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 作为一…

作者头像 李华
网站建设 2026/4/18 2:49:40

一键启动!cv_unet抠图镜像让透明背景轻松生成

一键启动&#xff01;cv_unet抠图镜像让透明背景轻松生成 你是否还在为一张商品图反复调整魔棒工具而头疼&#xff1f;是否每次做海报都要花半小时手动抠人像&#xff1f;是否面对几十张证件照只能叹气点开Photoshop逐张处理&#xff1f;别再把时间耗在重复劳动上了——现在&a…

作者头像 李华
网站建设 2026/4/5 19:51:16

PyTorch-2.x-Universal-Dev-v1.0 + Jupyter Notebook = 最佳学习组合

PyTorch-2.x-Universal-Dev-v1.0 Jupyter Notebook 最佳学习组合 你是不是也经历过这样的时刻&#xff1a;刚打开PyTorch教程&#xff0c;光是环境配置就卡了两小时——CUDA版本不匹配、pip源太慢、Jupyter内核找不到、matplotlib中文乱码……最后不是放弃&#xff0c;就是靠…

作者头像 李华