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

其中用到了一个没有见过的str_rot13()方法,了解后如下

<?php

$str = "aA";

// str_rot13方法将字符往后移动13为,a 往后数13位就是 n
$str = str_rot13($str);
print($str);


?>

由于将a往后移动13位是n,再往后移动13又变成了a,因为一共26个英文字母,所以将该题目中给我们的代码反过来写一遍即可

<?php

$str = 'a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws';

$str = str_rot13($str);
$str = strrev($str);
$str = base64_decode($str);

for ($i=0; $i < strlen($str); $i++) { 
	$c = substr($str,$i,1);
	$ascii_c = ord($c)-1;
	$c = chr($ascii_c);
	$_str = $_str.$c;

}

$str = strrev($_str);
print($str);
?>

posted @   Junglezt  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示