[BJDCTF2020]Easy MD5

[BJDCTF2020]Easy MD5

img

一个输入框,无论输入什么都没有回显,使用yakit抓包看看

img

根据返回的数据包可以得知其sql查询语句,我们需要尝试绕过查询语句来获得线索,md5()函数中$pass参数为输入的参数,而true代表一种模式,将字符串md5哈希后转化为二进制类型

MD5语法

标准格式

md5(string,raw)

参数 描述
string 必需。要计算的字符串。
raw 可选。规定十六进制或二进制输出格式: TRUE-原始 16字符二进制格式 。 FALSE-默认 32字符十六进制数。

但是这里如果转化成十六字符二进制格式的话会产生乱码,所以一般会

1.对输出的16位字节的二进制转换为十六进制。

2.取32位秘文的中间16位

这里我们使用ffifdyop,转成十六进制的话就会变成

’or’6XXXXXXXXX(这里的XXXXX是一些乱码和不可见字符)

拼接进查询语句就会变成

select * from admin where password=''or'6XXXXXXXXX'

完美形成一个万能密码

下一关

img

查看页面源码

<!--
$a = $GET['a'];
$b = $_GET['b'];

if($a != $b && md5($a) == md5($b)){
    // wow, glzjin wants a girl friend.
-->

弱比较简单使用科学计数法即可绕过

a=QNKCDZO&b=s878926199a

img

强比较用数组绕过即可

img

posted @ 2025-03-06 00:28  朱迪Judy  阅读(136)  评论(0)    收藏  举报