Sql注入学习笔记——MySQL显错注入
1. 显错注入的定义
显错注入又叫报错注入,其原理是通过利用数据库的某些机制,人为地制造错误条件使得查询结果能够出现在错误信息中。
2. 使用场景
注入页面能返回SQL语句执行错误的信息,或者其余能获得该报错信息的场合。
3. 显错注入的优缺点
优点:不需要显示位,如果有显示位建议使用union联合查询。
缺点:需要有SQL语句的报错信息
4. 构造显错注入的基本步骤
1)构造目标查询语句
2)选择显错注入函数
3)构造显错注入语句
4)拼接显错注入语句
5. 常见的显错注入函数
5.1 updatexml函数
5.1.1 函数构造及作用
updatexml(XML_document, XPath_string, new_value);
参数解析:
XML_document:XML文档对象,为String格式
XPath_string:XPath格式的字符串
new_value:String格式,替换查找的符合条件的数据
作用:改变XML_document中符合XPath_string的值
5.1.2 显错注入原理
一般配合concat() 函数使用,因为concat() 得到的是一个字符串但不符合XPath_string的格式,从而出现格式错误。
5.1.3 示例
select * from table_name where id=1 and updatexml(1, concat(0x7c,(select version()),0x7c),1);
结果