先把提示的文档下载下来,可以发现md5里面的几个php文件
既然提示是MD5,我就没往sql注入方向想,在F12下找下有没有可利用的线索
没有什么注释可以让我们知道要输入什么
既然是leveldo4.php页面,那我们便打开一下给我们的源代码看看
可以看到GET方法传入一个参数给password,如果这个参数等于ffifdyop,则跳到levels91.php页面,输入正确的密码后
可以发现levels91.php这个界面的注释里面有一段代码(我们也可以看一下这个页面的源码)
可以知道知道用用GET方法传入a,b不同的值但md5加密后却相同的值,如果条件匹配成功则跳到levell14.php页面,考的是md5的弱比较md5、sha1弱比较,md5($pass,true)总结 - 87x00 - 博客园
这里跟字符串和数字弱比较类似,如“123”==“123qwer”,答案是True,因为字符串与数字比较时,会将字符串转换为数字,则123qwer会转化为123;但是开头不是数字的话"qwe123",则会转化为0.
MD5也有一些特殊情况,一些字符串进行md5加密后会转化为同一个格式0e……,从而会会识别为科学计数法都为0,从而通过条件
还有一种情况是md5是不能加密数组的,如果你传入a[0]=1&b[0]=3,都会返回False从而相等,因此两种方法我们都可以选择
传入成功后终于来到输出flag的页面,可以发现考的知识点是一样的,只是变成了post请求而已
其实最快来到此页面的方法是,前面的源码告诉了你完成if语句就可以跳转页面,既然你知道了会跳转到哪个页面,我们可以无视那个if语句直接改url页面即可,也算一个快的方法吧