
一:WEB 2
打开是一个 PHP 代码。

代码审计
- 首先给了一段密文也就是需要解密的 flag。
- 然后对传进来的 str 进行字符串反转($_o)。
- 进入 for 循环,首先截取一个字符 (赋值给$_c),将这个字符转换为 ascii 值进行 +1(赋值给$__) 然后将 +1 后的 ascii 在转换为字符 (赋值给$_c) 输出最后进行拼接(例如先将 abc 变为 cba 然后再加 1 最后拼接就是 dbc)。
- 对$_进行 base64 编码然后再反转最后进行 rot13 转换。
解密只需要将如上倒过来即可。先进行 rot13 转化然后进行 strrev 反转在进行 base64 解码将解码后的结果进行截取对其 ascii 减 1 后转换为字符最后拼接完再反转即可得到 flag。

解密代码如下
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; // 逆向 str_rot13
$step1 = str_rot13($miwen);
// 逆向 strrev
$step2 = strrev($step1);
// 逆向 base64_encode
$step3 = base64_decode($step2);
// 逆向 ord($char)+1
$decrypted = "";
for ($i = 0; $i < strlen($step3); ++) {
= (, , );
.= (() - );
}
= ();
;
















