zoukankan      html  css  js  c++  java
  • web2

    0x01

    <?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()

    定义用法:strrev()

    • 翻转字符串

    substr()

    定义:

    • 返回字符串的一部分

    用法:substr(string,start,length)

    • string,必需,查询的字符串
    • start,必需,在字符串的开始位置
    • length,可选,返回字符串的长度
    <?php
    
    $a="hello world";
    $b=substr($a, 6);
    $c=substr($a, 7,1);
    echo $b,PHP_EOL;
    echo $c;
    
    world
    o
    ?>
    
    

    ord()

    定义:

    • 返回单个字符的ASCII值
    • 返回字符串首个字符的ASCII值
    <?php
    
    echo ord("s");
    echo ord("string");
    
    115
    115
    ?>
    
    

    chr()

    定义:

    • 从不同的ASCII值返回字符
    <?php
    
    echo chr(61); //十进制
    echo chr(061); //八进制
    echo chr(0x61); //十六进制
    
    =
    1
    a
    ?>
    
    

    0x02 分析

    传入的字符串,翻转得到$_o
    遍历每个字符
    每个字符ord(),得到ASCII,再加1
    将得到的数,chr(),编程字符
    得到整个字符串
    base64加密,反转,rot13加密,得到miwen

    //解密脚本
    
    <?php
    $str="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
    $a=base64_decode(strrev(str_rot13($str)));
    
    $b="";	
    for($x=0;$x<strlen($a);$x++){
    		
    	$y=substr($a, $x,1);
    	$z=ord($y)-1;
    	$d=chr($z);
    	$b=$b.$d;
    }
    echo strrev($b);
    
    //flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}
    ?>
    

    参考链接:
    https://blog.csdn.net/weixin_42499640/article/details/99102049

  • 相关阅读:
    C++静态库与动态库(转)
    Tornado异步
    Yacc与Lex
    云数据库
    linux如何查看端口被谁占用
    Innodb Double Write
    MySQL GTIDs(global transaction identifiers)
    Java并发编程:线程池的使用
    Oracle 建立索引及SQL优化
    解决redhat linux下IP地址可以ping通,域名无法ping通问题
  • 原文地址:https://www.cnblogs.com/observering/p/12849735.html
Copyright © 2011-2022 走看看