[BJDCTF2020]Easy MD5+[安洵杯 2019]easy_web

因为打比赛的时候看见好几个都是md5的强、弱类型绕过,而且自己也没有很好总结这方面的解题经验,为了避免打比赛签完到就走的情况,觉得还是有必要做做笔记~~

取自[BJDCTF2020]Easy MD5+[安洵杯 2019]easy_web的两道md5绕过。

[BJDCTF2020]Easy MD5

进去是一个提交数据的页面,随便写一个数据然后抓包重发,发现提示

Hint: select * from 'admin' where password=md5($pass,true)

在这里插入图片描述

确定为sql注入,并且得绕过:md5($pass,true)

查查其他师傅的wp知道该函数的用法即绕过方式

在这里插入图片描述

师傅说这个可以用ffifdyop绕过,绕过原理是:ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是’ or ‘6,而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from ‘admin’ where password=’’ or ‘6xxxxx’,等价于 or 一个永真式,因此相当于万能密码,可以绕过md5($pass,true)函数(今年的强网杯也用到了这个方法)。

payload:

?password=ffifdyop

在这里插入图片描述

进入到一个新的页面,get两个参数,要求值不相等,但是md5值要相等,是md5的弱类型绕过,用数组就好,md5不能处理数组。

在这里插入图片描述

payload

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

在这里插入图片描述
又进入一个新的页面,这下是md5的强类型绕过,因为没有要求是否是字符串,所以仍然可以用数组来进行绕过。
在这里插入图片描述

当然也可以使用特殊的字符串来绕过,之间有保存过利用的字符串,现在就直接利用了。

param1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
param2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

在这里插入图片描述

他们经过url解码后的MD5值相等
在这里插入图片描述

[安洵杯 2019]easy_web
多了string,不能用数组绕过了,只能这样子绕过
在这里插入图片描述

ps:

个人站点博客:XingHe,欢迎来踩~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值