[BJDCTF2020]Easy MD5

发布时间 2023-10-09 12:57:45作者: 圆弧状态

原理

  1. 抓包看源码
  2. select * from 'admin' where password=md5($pass,true)的绕过
  3. md5==的弱比较问题
  4. md5===的弱比较问题

解题过程

进入靶场看到输入框,随便输几个传递参数:leveldo4.php?password=xx。但是怎么输都没有反应,页面原代码也没有提示,抓一下包看看

发现有提示,好隐秘- -差点看漏了

也就是说我们要绕过select * from 'admin' where password=md5($pass,true),将pass加密成MD5值,如何能让这个语句执行呢?
有个知识点: 当参数为ffifdyop时,会返回’or’6�]��!r,��b,相当于select * from ‘admin’ where password=‘’or1构成万能密码。

payload:?password=ffifdyop

发现网站跳转到了levels91.php

页面没什么,查看页面源码,露出了后台源码

这个就是md5的弱比较问题

QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a用科学计数法0e绕过
又或者数组绕过,md5不接受数组类型

发现又跳转到了levell14.php,好麻烦- -这是好像是MD5的强比较问题

用数组绕过拿到flag

参考文章:https://blog.csdn.net/m0_64236521/article/details/128877434