[BJDCTF2020]Easy MD5 1

小白学习记录

打开题目看到给了一个input输入框提交个参数发现是赋值给password输入了许多参数都没有变化,这个时候我们可以试试从其他地方下手,比如看网页源码和网络请求或者用bp抓个包看看

发现了sql语句,关键的地方在于md5($pass,true)这里意思是我们传入参数会转为MD5的16字符二进制格式

我们需要一个编码后为‘or’1xxxxxx这样的数,or后面要是0除外的数字,这样就是一个永真的参数,ffifdyop就是我们要找的参数

提交后跳转到另一个网页F12看到要两个参数不同,但是MD5值相同

方法一:数组绕过md5()函数计算的是一个字符串的哈希值,对于数组则返回false

payload:a[]=1&b[]=2

方法二:科学计数法绕过,因为QNKCDZO和240610708 MD5都是0e开头的字符串,==  是比较松散的比较,它只比对数值不比对类型,比如 1a 和 1b 在php弱类型比较中是相同的,因为它俩在做比较的时候1a和1b会被怕判断成数字比较,所以就成了1和1做比较,自然就相同了

payload:?a=QNKCDZO&b=240610708

上面的方法绕过后还有一个网页

代码的逻辑是一样的,但是这里换成了===变成强比较了,就不能用方法二的方式绕过了,但是方法一可以继续绕过

flag就出来了

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值