今日份攻防世界11.10----web2

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

//strrev() 函数:反转字符串     strrev("I love Shanghai!");=>!iahgnahS evol I

//php substr() — 返回字符串的子串

substr ( string $string , int $start [, int $length ] )

start

如果 start 是非负数,返回的字符串将从 stringstart 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。

如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。

如果 string 的长度小于 start,将返回 FALSE

Example #1 使用负数 start

<?php
$rest = substr("abcdef", -1);    // 返回 "f"
$rest = substr("abcdef", -2);    // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>

 

 

 

源码:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
//$str为flag $miwen为加密后的字符
function encode($str){
    $_o=strrev($str);//倒写字符串
    // echo $_o;
        
    for($_0=0;$_0<strlen($_o);$_0++){
       
        $_c=substr($_o,$_0,1); //第$0个字符
        $__=ord($_c)+1;//ord()转换为ascii码
        $_c=chr($__); //从ascii码返回字符(十进制十六进制八进制

        $_=$_.$_c;   //acsii+对应的字符
    } 
    return str_rot13(strrev(base64_encode($_)));

//str_rot13()编码或解码,把每一个字母在字母表中向前移动 13 个字母得到。数字和非字母字符保持不变。

//strrev()反转字符串函数
}

highlight_file(__FILE__);
/*
   逆向加密算法,解密$miwen就是flag
*/
?>

由源代码可猜出,$str为输入变量(flag),$miwen为加密后的密文

需做的是反向解码,从下向上解

最后输出即为flag

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值