1. 程式人生 > >各種繞過----bugku 之 SHA1 碰撞

各種繞過----bugku 之 SHA1 碰撞

<?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。。。 在這裡插入圖片描述