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了