攻防世界WEB(新手模式)2-5-web2

题目解析:

拿到题目看一下,典型的需要逆向算法

那我们第一步肯定就是对代码进行解析

加密步骤:

  1. 反转字符串

  2. 每个字符 ASCII 码加 1

  3. 进行 Base64 编码

  4. 反转结果字符串

  5. 对整个结果进行 ROT13 替换(是字母替换,对字母 a-z/A-Z 移动13位,非字母不变。)

因此

加密顺序:
原字符串反转ASCII+1Base64编码反转ROT13

解密顺序:
密文ROT13解码反转Base64解码ASCII-1反转

方法一:

全部利用工具进行

1、rot13在线工具解码(也可以自己写脚本)

解码 ROT13 - 将 ROT13 转换为文本

得到密文:n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf

2、反转

在线字符串反转 - 在线工具

得到密文:fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n

3、base64解码

Base64 在线编码解码 | Base64 加密解密 - Base64.us

得到密文:~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg

4、ASCII-1

这个部分没用在线工具,直接用ai的

得到密文:77`2d0af732d730646c918bfda5d37b_FTCSN{:gaclf

5、再次反转

flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

方法二:

脚本运行

php 复制代码
<?php

$miwen = "a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

// 解密步骤
$step1 = str_rot13($miwen);               // 1. ROT13 解码
$step2 = strrev($step1);                  // 2. 反转
$step3 = base64_decode($step2);           // 3. Base64 解码

// 4. ASCII 减 1
$step4 = "";
for ($i = 0; $i < strlen($step3); $i++) {
    $c = $step3[$i];
    $step4 .= chr(ord($c) - 1);
}

// 5. 反转得到原始明文
$flag = strrev($step4);

echo "Flag: " . $flag . "\n";

?>

我这里直接用php沙箱运行,得到flag啦

PHP Sandbox - Execute PHP code online through your browser

flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

相关推荐
不吃橘子的橘猫1 小时前
Verilog HDL基础(概念+模块)
开发语言·学习·算法·fpga开发·verilog
谢尔登1 小时前
React19 渲染流程
前端·javascript·架构·ecmascript
我是伪码农1 小时前
Vue 1.29
前端·javascript·vue.js
css趣多多1 小时前
Vue动态组件以及keep-alive的使用
前端·javascript·vue.js
盐真卿1 小时前
python第五部分:文件操作
前端·数据库·python
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][dma]dma-buf
linux·笔记·学习
晚霞的不甘2 小时前
Flutter for OpenHarmony《智慧字典》英语学习模块代码深度解析:从数据模型到交互体验
前端·学习·flutter·搜索引擎·前端框架·交互
七夜zippoe2 小时前
网络安全实战:从TLS/SSL到JWT与OAuth2.0的完整防御体系构建
网络·安全·web安全·ssl·tls
LYS_06182 小时前
寒假学习(9)(C语言9+模数电9)
c语言·开发语言·学习