报错注入
- 在MYSQL中使用一些指定的函数来制造报错,后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端,从而从报错信息中获取设定的信息。select/insert/update/delete都可以使用报错来获取信息。
报错注入流程:
1)判断是否存在注入点。
2)构造错误的语法制造报错。
3)使用对应的报错函数来获取信息。
常用的报错函数:
- 基于函数报错的信息获取(select/insert/update/delete)
updatexml()
updatexml()函数是MYSQL对XML文档数据进行查询和修改的XPATH函数;
构造:and updatexml(xml_document,Xpathstring,new_value)
- xml_document:xml标记,可以是任意值
- Xpathstring:显示输出的信息,正确的是路径xx/xxx/x
- new_value:替换找到的符合条件的数据
extractvalue(xml_document,xml路径)
extractvalue()函数也是MYSQL对XML文档数据进行查询的XPATH函数;
正确的应该显示xml路径xx/xxx,但是我们要报错注入,所以就要故意输错以此来显示数据库报错信息
and extractvalue(1,concat(’~’,(select database())))
1、通过floor报错,注入语句如下: