1
"select * from 'admin' where password=' ".md5($pass,true)." ' "

输入:ffifdyop

原因:数据库会把16进制转为ascii解释

如下: flag{welcome}的16进制是0x666c61677b77656c636f6d657d

而我们的md5(ffifdyop) 会返回16进制字符串

这时原来的语句就是:

1
"select * from 'admin' where password='' or'6蒥欓!r,b' "

or后面的句子第一个字母是非0打头的数字符,比如为 ‘ 1abc ’ 或者 ‘ -1bde ’都会被认为是true。

以0开头会认为是false.