前言
奇奇怪怪的题目,正常的sql,不正常的逻辑
题目
开局一个框,语句全靠注
堆叠注入可以,查数据库
查表
然后不管查字段的时候不管是desc还是show columns from Flag都不行了,上网找一些另类查字段的也不行,没办法只能看wp
结果逻辑是select $_POST[query] || flag from flag
,这谁又想得到呢
解题
官方解
使用set sql_mode=PIPES_AS_CONCAT
将||
视为连接符而不是运算符
因此可以构造
1;set sql_mode=PIPES_AS_CONCAT;select 1
非预期解(更简单)
构造
1;select *,1
拼接之后变成select 1;select *,1||flag from Flag
后半部分相当于select *,1 from Flag
直接出flag
总结
sql语句符合逻辑,后面这个拼接就有点走火入魔了,实际作用不大。