攻防世界系列:web2
1.代码审计
知识补充:
strrev(string):反转字符串
strlen(string):字符串长度
substr(string,start,length):截取字符(从第start位开始,取length个字符)
ord(string):把字符转为ASCII
chr():把ASCII转为对应字符
str_rot13(string):用ROT13编码(把字符在字母表中的位置向前移动13位,非字符不变,编码解码由同一函数完成)
2.根据加密算法,编写解密脚本
<?php $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; function dencode($miwen){ $_o=base64_decode(strrev(str_rot13($miwen))); // echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){ $_c=substr($_o,$_0,1); $__=ord($_c)-1; $_c=chr($__); $_=$_.$_c; } return strrev($_); } highlight_file(__FILE__); /* 逆向加密算法,解密$miwen就是flag */
$flag = dencode($miwen); echo $flag; ?>
3.运行结果