bugku-各种绕过哟

打开题目有一串代码

 1 <?php
 2 highlight_file('flag.php');
 3 $_GET['id'] = urldecode($_GET['id']);
 4 $flag = 'flag{xxxxxxxxxxxxxxxxxx}';
 5 if (isset($_GET['uname']) and isset($_POST['passwd'])) {
 6     if ($_GET['uname'] == $_POST['passwd'])
 7 
 8         print 'passwd can not be uname.';
 9 
10     else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))
11 
12         die('Flag: '.$flag);
13 
14     else
15 
16         print 'sorry!';

通过阅读代码可以知道

当uname和passwd的值不相等,且他们的sha1值相等和get传的id值为margin时

会得到flag

查一下sha1值绕过

sha1()函数无法处理数组类型,会将报错并返回false,if 条件成立,就会得到flag了

 

posted @ 2021-06-16 16:39  c0d1  阅读(268)  评论(0编辑  收藏  举报