BUU WEB [BJDCTF2020]Easy MD51

这道题第一步就把我给整懵圈了…在看题目源码时在最后看了解决方法:
在这里插入图片描述
至于刚开始的原理函数,不懂为什么这样解决,大佬是这样解释的:
select * from ‘admin’ where password=md5($pass,true)

这里面password就是我们用户框中输入得东西。如果通过md5之后返回字符串是’or 1的话,形成一个永真条件:
select * from ‘admin’ where password=’ ‘or ‘6…’
这个可以用ffifdyop绕过,绕过原理是:
ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ’ or ‘6
而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from ‘admin’ where password=’’ or ‘6xxxxx’,等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。
输入后进入另外一个页面:
在这里插入图片描述

查看源代码:
在这里插入图片描述
这次很清晰,在开头就给出了提示,get传参a,b,使其不相等但md5加密后相等,这个好说,在网上可以查到一些这样字符,这里就不多赘述,我利用的是md5处理不了数组的方法,传入数组:

?a[]=1&b[]=2

在这里插入图片描述
根据提示,依旧是传入两个参数,要求两个参数不完全相等,但md5加密后完全相等,这个像上一个一样,直接用数组就可以解决,最后得到flag:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值