进入题目环境,查看页面信息:
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_o=strrev($str);// echo $_o;for($_0=0;$_0<strlen($_o);$_0++){$_c=substr($_o,$_0,1);$__=ord($_c)+1;$_c=chr($__);$_=$_.$_c; } return str_rot13(strrev(base64_encode($_)));
}highlight_file(__FILE__);
/*逆向加密算法,解密$miwen就是flag
*/
?>
审计代码,代码中提示对 变量$miwen 进行逆向解密获取 flag:
str_rot13()
函数是 PHP 中的一个字符串处理函数,用于对字符串进行 ROT13 编码或解码。ROT13 是一种简单的字符替换加密技术,它将字母表中的每个字母替换成字母表中它后面第 13 个字母,并且保留字母的大小写不变。
遂根据源码逆向编写脚本:
<?php function decode($str) {$result = "";$str = str_rot13($str);$str = strrev($str);$str = base64_decode($str);for($i = 0; $i < strlen($str); $i++) {$part = substr($str, $i, 1);$trans = ord($part) - 1;$part = chr($trans);$result = $result.$part;}return strrev($result);}$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";echo decode($miwen);
?>
运行脚本:
成功获取 flag 值。