进入题目环境,查看页面信息:
<?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 值。