导图社区 报错注入
即页面会返回数据库错误信息,使用数据库函数,基于数据库的报错信息夹杂着我们想要信息.
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
报错注入
报错注入的定义
即页面会返回数据库错误信息,使用数据库函数,基于数据库的报 错信息夹杂着我们想要信息。
错注入的触发需要借助某些函数的报错机制,此处介绍两种最常 见的报错注入方式: updatexml()报错注入 extractvalue()报错注入
报错注入的相关函数
updatexml()函数
函数用途
updatexml()函数是mysql对XML文档数据进行查询和修改的XPATH函数
函数形式:UPDATEXML(XML_document,XPath_string, new_value)
第一个参数
XML_document是String格式,为XML文档对象的名称
第二个参数
XPath_string(Xpath格式的字符串)
第三个参数
new_value,String格式,替换查找到的符合条件的数据
作用
改变文档中符合条件的节点的值,即改变XML_document中符合 XPATH_string的值
注入语句
updatexml(1,concat(0x7e,(SELECT查询语句),0x7e),1)
concat()函数
concat()函数是将其参数连成一个字符串,因此不会符合 XPATH_string的格式,从而出现格式错误导致错误信息返回。该函数作为 关键部分,必须写入。
extractvalue()函数
extractvalue()函数是mysql对XML文档数据进行查询XPATH函数
函数形式:EXTRACTVALUE(XML_document,XPath_string)
从目标XML中返回包含所查询值的字符串
extractvalue(1,concat(0x7e,(select查询语句),0x7e))
报错注入payload举例
?id=1'and updatexml(1,concat('~',(select database()),'~'),1)--+
?id=1'and extractvalue(1,concat('~',(select database()),'~'))--+
可以利用报错信息进行注入的原因
因为我们输入的参数是不满足这里两个函数的语法格式的,所以产生报错,但是 在报错之前,会先把我们传进去的参数执行,然后把执行后的结果当成报错信息 给反馈回来。
利用条件: 后台没有屏蔽数据库的报错信息,在语法发生错误的时候是输出在前端的。 需要使用满足报错的特殊传参方式,否则不会触发函数报错。