[BJDCTF2020]Easy MD5 WP
阅读原文时间:2023年07月09日阅读:1

老样子 打开看看

你会发现 啥也没有

有一个输入框,随便输入看看 抓包发现跳转leveldo4.php

同时看到 hint 里面有select * from 'admin' where password=md5($pass,true) 字样

构造$pass字符串经md5加密后出现or ,则可令该SQL语句返回true,与万能密码的原理相同。

这里翻了翻大佬的笔记才发现ffifdyop绕过,为啥可以绕过,大概意思就是ffifdyop。 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是' or '6 所以 这里就绕过去了

发包往下拉发现里面出现一个levels91.php

于是访问看看

得到这个界面 啥也没有 那么直接来一手国际惯例ctrl+u查看源码

查看源码发现这里有两个get型传参,同时是弱类型比较

那么就可以利用md5值加密后为0e开头的字符串进行绕过

常见的md5后相等的值有一下

NKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904

s214587387a
0e848240448830537924465865611904

s878926199a
0e545993274517709034328855841020

s1091221200a
0e940624217856561557816327384675

s1885207154a
0e509367213418206700842008763514

s1502113478a
0e861580163291561247404381396064

s1885207154a
0e509367213418206700842008763514

s1836677006a
0e481036490867661113260034900752

s155964671a
0e342768416822451524974117254469

s1184209335a
0e072485820392773389523109082030

s1665632922a
0e731198061491163073197128363787

s1502113478a
0e861580163291561247404381396064

s1836677006a
0e481036490867661113260034900752

s1091221200a
0e940624217856561557816327384675

s155964671a
0e342768416822451524974117254469

还有一个特殊的 0e开头  hash后也是0e开头的
0e215962017

那么 这里直接给a和b传参

payload:http://e7cdd604-f8a6-4e88-8cb2-a4db7d46fef1.node4.buuoj.cn:81/levels91.php?a=s1091221200a&b=s155964671a

发现跳转levell14.php 并且有源码

这里也和前面比较差不多 具体可以看我这另外一篇 思路差不多

https://blog.csdn.net/weixin_52599204/article/details/126209588?spm=1001.2014.3001.5501

这里比较的是两个参数不相等 且md5值相等

单独使用相等的md5后的字符串是行不通的 这里需要使用数组

这里需要改post请求进行传参

发包得到flag

flag为:flag{5735e45b-2924-4abf-b017-987996fae68f}