bugku-web-decrypt

这里的提示解密后没有什么意义

这里下载文件包

得到一个index.php文件

得到代码

复制代码
<?php
function encrypt($data,$key)
{
    $key = md5('ISCC');
    $x = 0;
    $len = strlen($data);
    $klen = strlen($key);
    for ($i=0; $i < $len; $i++) { 
        if ($x == $klen)
        {
            $x = 0;
        }
        $char .= $key[$x];
        $x+=1;
    }
    for ($i=0; $i < $len; $i++) {
        $str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
    }
    return base64_encode($str);
}
?>

这里可以看到缺少data值和str值

因为提示中有一个base64的加密代码,猜测最终return输出为这个代码

复制代码
base64_encode($str)='fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA='

猜测反推data的值,data为最终flag

编写逆向exp

复制代码
<?php
$key = md5('ISCC');
$data_encoded = 'fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=';
$str = base64_decode($data_encoded);

$x = 0;
$klen = strlen($key);
$len = strlen($str);
$char = '';

// 生成密钥序列
for ($i = 0; $i < $len; $i++) { 
    if ($x == $klen) {
        $x = 0;
    }
    $char .= $key[$x];
    $x += 1;
}

// 逆向解密
$result = '';
for ($i = 0; $i < $len; $i++) {
    $result .= chr((ord($str[$i]) - ord($char[$i]) + 128) % 128);
}

echo $result;
?>

得到最终结果

相关推荐
灵感__idea6 小时前
JavaScript高级程序设计(第5版):好的编程就是掌控感
前端·javascript·程序员
烛阴7 小时前
Mix
前端·webgl
代码续发7 小时前
前端组件梳理
前端
试图让你心动8 小时前
原生input添加删除图标类似vue里面移入显示删除[jquery]
前端·vue.js·jquery
陈不知代码8 小时前
uniapp创建vue3+ts+pinia+sass项目
前端·uni-app·sass
小王码农记8 小时前
sass中@mixin与 @include
前端·sass
陈琦鹏8 小时前
轻松管理 WebSocket 连接!easy-websocket-client
前端·vue.js·websocket
终焉暴龙王8 小时前
CTFHub web进阶 php Bypass disable_function通关攻略
开发语言·安全·web安全·php
hui函数9 小时前
掌握JavaScript函数封装与作用域
前端·javascript
行板Andante9 小时前
前端设计中如何在鼠标悬浮时同步修改块内样式
前端