zoukankan      html  css  js  c++  java
  • bugku_web_PHP_encrypt_1(ISCCCTF) (涉及到md5加解密,尚需进一步学习)

    一道没有网址的web题、、很奇怪哎、、

    然后把文件下载并解压,得到一个给字符串加密的PHP

    解题思路是这样:

    我们要提交的flag作为一个字符串,赋值给$data传入这个脚本之后,得到了上面给出的字符串:fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=

    我们要做的就是逆向找出这个flag

    密码学还没学、、md5的加密和解密还不会,只能照抄大佬的wp了、、、

    https://blog.csdn.net/qq_19861715/article/details/79385075

    <?php
    function decrypt($str) {
        $mkey = "729623334f0aa2784a1599fd374c120d";
        $klen = strlen($mkey);
        $tmp = $str;
        $tmp = base64_decode($tmp);  // 对 base64 后的字符串 decode
        $md_len = strlen($tmp); //获取字符串长度
        $x = 0;
        $char = "";
        for($i=0;$i < $md_len;$i++) {  //  取二次加密用 key;
            if ($x == $klen)  // 数据长度是否超过 key 长度检测
                $x = 0;
            $char .= $mkey[$x];  // 从 key 中取二次加密用 key
            $x+=1;
        }
        $md_data = array();
        for($i=0;$i<$md_len;$i++) { // 取偏移后密文数据
            array_push($md_data, ord($tmp[$i]));
        }
        $md_data_source = array();
        $data1 = "";
        $data2 = "";
        foreach ($md_data as $key => $value) { // 对偏移后的密文数据进行还原
            $i = $key;
            if($i >= strlen($mkey)) {$i = $i - strlen($mkey);}
            $dd = $value;
            $od = ord($mkey[$i]);
            array_push($md_data_source,$dd);
            $data1 .= chr(($dd+128)-$od);  // 第一种可能, 余数+128-key 为回归数
            $data2 .= chr($dd-$od);  // 第二种可能, 余数直接-key 为回归数
        }
        print "data1 => ".$data1."<br>
    ";
        print "data2 => ".$data2."<br>
    ";
    }
    $str = "fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=";
    decrypt($str);
    ?>

    嗯,这个flag形式很坑爹:

    Flag:{asdqwdfasfdawfefqwdqwdadwqadawd}

  • 相关阅读:
    浅谈ES6
    iframe的应用
    vue时时监听input输入框中 输入内容 写法
    点击模态框滑动出来 抽屉
    this.$router 和this.$route 的区别
    iview框架 两侧弹框 出现第二层弹框 一闪而过的问题
    input框中的必填项之取消当前input框为必填项
    v-model 的修饰符
    单页面开发和多页面开发的优缺点
    原型继承+借用构造函数继承 的一些理解
  • 原文地址:https://www.cnblogs.com/huangming-zzz/p/9742523.html
Copyright © 2011-2022 走看看