zoukankan      html  css  js  c++  java
  • Bugku-CTF之各种绕过

    Bugku-CTF之各种绕过


    本题要点:php代码审计、hackbar利用

     <?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!';
    
    }
    ?> 
    

    阅读代码:uname的值和passwd不能相等
    两个加密后的值相等并且id=margin
    sha1() 函数计算字符串的 SHA-1 散列。

    sha1() 函数使用美国 Secure Hash 算法 1。

    来自 RFC 3174 的解释 - 美国 Secure Hash 算法 1:SHA-1 产生一个名为报文摘要的 160 位的输出。报文摘要可以被输入到一个可生成或验证报文签名的签名算法。对报文摘要进行签名,而不是对报文进行签名,这样可以提高进程效率,因为报文摘要的大小通常比报文要小很多。数字签名的验证者必须像数字签名的创建者一样,使用相同的散列算法。
    利用sha1函数无法处理数组的特性即可。当对sha1()函数传入数组时会返回null,由此,只需要传入两个不同的数组即可成功绕过。

  • 相关阅读:
    效能分析
    四人小组项目--连连看的设计与实现
    每周工作量及进度统计(第三周)
    四则运算改进版
    词频统计改进版1
    SCRUM站立会议
    四则运算
    效能分析
    四人小组项目的需求和功能等描述
    通读构建之法
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/12637950.html
Copyright © 2011-2022 走看看