这个题需要考察php的代码审计,需要具备一定的php知识
最后一段说这个就是思路
首先先看看代码中的几个函数
Strlen()函数 将返回字符串的长度
Strrev()函数 将字符串倒置并且返回
Substr()函数 将返回字符串的一部份
此函数里面有三个参数 分别是string,start,length
代表字符串,开始的位置,返回字符的长度
Ord()函数 将返回第一个字符的ASCLL的值
Chr()函数 将ASCLL值返回成为字符
Str_rot13函数 将字符串进行ROT13编码 也就是把每一个字母向前移13个 这个和字母表26个英文相呼应我们编码两次即可以进行解密,相当于没有加密,此函数对非字母字符无效,仍保持为原来的字符
. 符号 代表拼接两个字符
想要了解更多可以看看
php常用函数最全总结_筑梦悠然的博客-CSDN博客_php常用函数大全
现在便可以做题了
经过知道函数意义 我们可以一步步看懂这个加密过程
由此我们进行逆向解密
应该从下面开始来
先base64解密 base64_decode()
使用 strrev()倒置字符串
再进行ROT13编码 刚好26个字母进行两次刚好完成解密
之后就是将字符的ASCLL码值-1
字符串再进行倒置
同样我们也使用php,使用echo将解密结果输出
可以使用本地环境或者在线环境
得到flag
flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
此为本小白思路,若有错误欢迎指出
来源地址:https://blog.csdn.net/qq_53105813/article/details/127190165