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