handler绕过
原题是强网杯一道题目:
return preg_match("/select|update|delete|drop|insert|where|./i",$inject);
一开始这道题有两种解法,一种是堆叠注入+改表名,因为默认查的是words表,只要把flag在的表改成words,然后更改一下字段就可以,还有一种是使用堆叠注入+预处理语句,这种也没什么,比较简单。后来有人那这道题改编了一下,把rename和set过滤了,就又出现一种方法,使用handler语句,这个还是比较少见的,最终payload:
1'; handler `1919810931114514` open;handler `1919810931114514` read first;--+
handler文档:https://dev.mysql.com/doc/refman/8.0/en/handler.html