NSCTF web200

先看题

分析信息:

strrev是一个将字符串进行翻转的函数

substr是一个取字符串子串的函数,其用法为strsub(str, start, length),第一个参数为字符串,第二个参数为起始位置,第三个参数为子串长度,返回的结果就是str字符串从start这个位置开始的长度为length的子串。

ord函数的参数为字符串,此函数将返回字符串第一个字符的Acsii码。

chr函数的参数为整型,此函数将从指定的ASCII值返回字符

. 就是+的意思

base64_encode进行base64编码

.str_rot13进行rot13编码

然后这段代码的意思是首先是将原文进行反转,然后再将反转后的字符串的每一个字符值+1,接下来再进行base64编码、反转和ROT13编码,得到我们的密文。

所以该题我们就逆向的破解,

些一个php代码来破解

<?Php

$_code="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";//先将要我们破解的东西赋值上去

$_code = str_rot13($_code);//进行rot13解码

$_code = strrev($_code);//进行反转

$_code = base64_decode($_code);//进行base64解码

//echo $_code;

$_ans = "";

for($x = 0; $x < strlen($_code); $x++) {

$t = substr($_code, $x, 1);

$t1 = ord($t) - 1;

$t = chr($t1);

$_ans = $_ans . $t;

}

$_ans = strrev($_ans);再反转

echo $_ans;

?>

在本地运行一下得到flag

原文地址:https://www.cnblogs.com/wosun/p/11215761.html