攻防世界系列: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.運行結果