Solveme Name Check

http://solveme.safflower.kr/prob/name_check

源码:

需要绕过4个对admin的判断

常规思路, 首先用’)闭合 然后再接 and 或者 or 来构造新的判断语句

因为如果要闭合第四个判断的 substr 需要两个参数, 比如我们用 1','1') 闭合, 这样我们的语句就变成

那么接下来就是如何构造使得后面四个判断和其前面的判断 and 或者 or 后同时为1, 已知 select 1 and 1 为 1 select 0 or 1也为1, 所以我们更倾向于用更松散的 or 来连接两个判断

首先考虑前面部分的判断:

因为前半部分的判断都非常容易满足, 所以构造让四个判断都为1的参数是比较容易的, 可知两个参数都为数字, 且第二个参数为1的时候, 四个判断都为1, 所以后面的判断只需要考虑语法正确就行了

那么最后的payload: name=1','1') or min('a