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;
?>

得到最终结果

相关推荐
GISer_Jing15 小时前
告别手搓架构图!Excalidraw+AI Skills 高效绘制手绘风技术图
前端·人工智能·react.js
jiayong2315 小时前
第 7 课:第三轮真实重构,拆出新增任务弹窗
服务器·前端·重构
钛态15 小时前
前端WebSocket实时通信:别再用轮询了!
前端·vue·react·web
爱学习的程序媛15 小时前
浏览器内核揭秘:JavaScript 和 UI 的“主线程争夺战”
前端·性能优化·浏览器·web
你挚爱的强哥15 小时前
欺骗加载进度条,应用于无法监听接口数据传输进度的情况
前端·javascript·html
zhensherlock15 小时前
Protocol Launcher 系列:Mail Assistant 轻松发送 HTML 邮件
前端·javascript·typescript·node.js·html·github·js
恒本银河+15 小时前
基于MQTT+NFC标签项目开发教程
前端·javascript·nfc标签
吴声子夜歌15 小时前
ES6——异步操作和async函数详解
前端·ecmascript·es6
小小小米粒15 小时前
生命周期 = Vue 实例从创建 → 挂载 → 更新 → 销毁的全过程钩子函数computed = 基于依赖缓存的计算属性
前端·javascript·vue.js
赵侃侃爱分享15 小时前
网络安全常识十条
网络·安全·web安全