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

代码审计
- 首先给了一段密文也就是需要解密的 flag。
- 然后对传进来的 str 进行字符串反转(
$str)。- 进入 for 循环,首先截取一个字符 (赋值给
$c),将这个字符转换为 ASCII 值进行 +1 (赋值给$_),然后将 +1 后的 ASCII 再转换为字符 (赋值给$c) 输出最后进行拼接(例如先将 abc 变为 cba 然后再加 1 最后拼接就是 dbc)。- 对
$str进行 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 = ; < (); ++) {
= (, , );
.= (() - );
}
= ();
;
















