各種繞過----bugku 之 SHA1 碰撞
阿新 • • 發佈:2018-12-16
<?php highlight_file('flag.php'); $_GET['id'] = urldecode($_GET['id']); $flag = 'flag{xxxxxxxxxxxxxxxxxx}'; if (isset($_GET['uname']) and isset($_POST['passwd'])) { if ($_GET['uname'] == $_POST['passwd']) print 'passwd can not be uname.'; else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin')) die('Flag: '.$flag); else print 'sorry!'; } ?>
注意點:
1. get方式提交uname 和 id 值 ,post方式提交passwd值
2. uname和passwd的雜湊值相同
3. id == “margin”
解決
1 get和post提交,方式1:火狐的HackBar,方式:python程式 。。。
2 把uname和passwd定義成陣列,陣列的雜湊值相同
3 url傳入時,令id=margin
最後採用post和get兩種方式同時提交,得到flag。。。