XCTF Web2 writeup(php 代码逆向)

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
*/
?>

strrev() 函数反转字符串。

substr(string,start,length)

substr() 函数返回字符串的一部分。

ord() 函数返回字符串的首个字符的 ASCII 值。

chr() 函数从指定的 ASCII 值返回字符。

str_rot13() 函数对字符串执行 ROT13 编码。

ROT13 编码把每一个字母在字母表中向前移动 13 个字母。数字和非字母字符保持不变。

提示:编码和解码都是由相同的函数完成的。如果您把已编码的字符串作为参数,那么将返回原始字符串。

XCTF Web2 writeup(php 代码逆向)_第1张图片

 

$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

 

function decode($str){

    $_o=str_rot13($str);

    // echo $_o;

      $_o=strrev($_o);

    $_o=base64_decode($_o);

    for($_0=0;$_0

      

        $_c=substr($_o,$_0,1);

        $__=ord($_c)-1;

        $_c=chr($__);

        $_=$_.$_c;  

    }

    return strrev($_);

}

 

highlight_file(__FILE__);

/*

   逆向加密算法,解密$miwen就是flag

*/

echo decode($miwen)

?>

XCTF Web2 writeup(php 代码逆向)_第2张图片

 

flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

你可能感兴趣的:(学习笔记,xctf)