1 | class RealSecureLoginManager { |
在上面的代码中,$queryBuilder拼接了一条sql查询语句,但是对传入的user进行了addslashes函数过滤,也就是说没有办法通过user进行注入,而且pass变量是经过md5计算的散列值,理论上也没有办法进行注入,但是这里这里md5()函数的$raw_output值设置为true,那么这个md5报文摘要将以16字节长度的原始二进制格式返回。
什么意思呢?看一下下面的执行结果
也就是说这个二进制格式的返回值会引入其他非预期的字符,比如说\
这里经过fazz,发现 md5(128, true) 最后的结果带有反斜杠。因此这题最后的payload如下:1
user= OR 1=1#&passwd=128
另外实验吧的一道题目类似
http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php