首先查看源码
可以看出是利用php中的md5()函数漏洞和strcmp()函数漏洞。
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。同时MD5不能处理数组,有时也可以用数组绕过。同时strcmp()函数也可用数组绕过。
所以构造payload
http://47.93.190.246:49162/?v1[]=1&v2[]=2&v3[]=1 即可