web2
题目描述:解密
打开发现这么一串代码
<?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 */ ?>
观察得到,密文是以如下方式得到的:
将flag翻转,然后每一位对应ascii加一,将结果base64编码后翻转,再用rot13编码一次
因此,我们逆向操作即可解码
第一步,再一次进行rot13编码,即解码rot13(rot13编码两次即为处理前):n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf
第二步,翻转字符串:fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n
第三步,base64解码:~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg
第四步,每一位ascii减一:}77925d0af7327d30646c918bfda5d37b_FTCSN{:galf
第五步,翻转字符串,得到flag:
flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}