CTF-Web-NSCTF-解密WP
題目鏈接-攻防世界-web2
知識考察:PHP代碼審計、逆向加解密
解題思路
先搞清楚各個PHP函數的含義
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";//密文
function encode($str){
$_o=strrev($str);//strrev反轉字符串
// echo $_o;
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1);
$__=ord($_c)+1;//ord函數返回字符串中第一個字符的 ASCII 值
$_c=chr($__);//chr函數從不同 ASCII 值返回字符:
$_=$_.$_c;
}
return str_rot13(strrev(base64_encode($_)));//str_rot13函數編碼解碼字符串
}
highlight_file(__FILE__);
/*
逆向加密算法,解密$miwen就是flag
*/
?>
逆向思維得出解碼函數
function decode($str){
$_o=base64_decode(strrev(str_rot13($str)));
for($_0=0;$_0<strlen($_o);$_0++){
$_c=substr($_o,$_0,1);
$__=ord($_c)-1;
$_c=chr($__);
$_=$_.$_c;
}
return strrev($_);
}
echo decode($miwen);
highlight_file(__FILE__);
?>

