MYSQL 中 utf8_unicode_ci和utf8_general_ci两种编码格式,utf8_general_ci不区分大小写,Ä = A, Ö = O, Ü = U这三种条件都成立,对于utf8_general_ci下面的等式成立:ß=s,但是,对于utf8_unicode_ci下面等式才成立:ß = ss
所以在将mysql的编码设置为utf-8的时候,Ä = A, Ö = O, Ü = U,,左右两边的字符是可以相互替换的。这样就可以将0替换为Ö这样就可以绕过上面代码的检测,同时还可以能够正确地执行SQL语句。 我们通过如下的代码得到最终的payload: