md5()的用法与PHP弱比较,强比较md5()数组绕过之[BJDCTF2020]Easy MD51

首先博文参考和知识总结得很好,感谢:

[BJDCTF2020]Easy MD5_VVeaker的博客-CSDN博客

[BUUOJ记录] [BJDCTF2020]Easy MD5 - Ye'sBlog - 博客园

PHP弱类型hash比较缺陷 - Ye'sBlog - 博客园

响应里面已经告诉你这里含有一个对password 的md5加密 ,整个语句,是一个sql语句,当然 我们不知道password是多少,但是我们可以根据sql注入漏洞中的万能语句,也就是构造or 使该语句为TRUE;

那什么东西md5加密出来含有 or 1 此类万能语句呢,则需要写代码出来;

我不会写;wp里面用了ffifdyop

后端的SQL语句会变成:

select * from `admin` where password=''or'6<trash>'

这是一个TRUE语句;直接过了第一关;

第二关就是一个PHP弱比较

a b明文不同,但是md5值要相同,那只能使用0exxxxx...了

为什么呢,因为0e开头会被后台自动认为是科学计数,也就是0的次方,都是0;0==0;没毛病;

那什么样的值md5是以0e开头的呢,还是代码;

参考 PHP弱类型hash比较缺陷 - Ye'sBlog - 博客园,上面有链接;

里直接提供两个QNKCDZO和s214587387a,用GET传值直接过关

然后第三关是强比较;

md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。NULL===NULL,没毛病;

所以直接POST传入param1[]=1&param2[]=2即可得到Flag:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值