1.发现
1.1先查看源代码,随便注入,都无果,bp抓包,发现SQ语句
Hint: select * from ‘admin‘ where password=md5($pass,true)
知识点:
1)PHP中MD5函数
2.步骤
2.1 利用md5($password,true)实现SQL注入,输入ffifdyop实现注入,进入下一关。
知识点:
1)MD5函数的SQL注入
2.2 进入第二关后右键查看源代码可以从注释中得到后端PHP的一部分源码,发现为PHP md5弱类型比较
使用GET方法传入?a=QNKCDZO&b=s214587387a,进入下一关。
知识点:
1)MD5函数的弱类型比较
2.3 发现PHP代码,分析仍为 PHP md5绕过。
使用数组绕过POST传入param1[]=1¶m2[]=2,得到flag。
<?php error_reporting(0); include "flag.php"; highlight_file(__FILE__); if($_POST[‘param1‘]!==$_POST[‘param2‘]&&md5($_POST[‘param1‘])===md5($_POST[‘param2‘])){ echo $flag; }
知识点:
1)MD5 函数的数组绕过
3.借鉴
[BUUOJ记录] [BJDCTF2020]Easy MD5 - Ye‘sBlog - 博客园 (cnblogs.com)
PHP弱类型hash比较缺陷 - Ye‘sBlog - 博客园 (cnblogs.com)