[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&param2[]=0

技术图片

 

以上是关于[BJDCTF2020]Easy MD5的主要内容,如果未能解决你的问题,请参考以下文章

buuctf [BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5,[极客大挑战 2019]Knife