攻防世界web进阶区web2详解

攻防世界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
*/
?>

我们这里来审计一波
for循环,从0到循环到字符串长度
o 开 始 之 后 _o开始之后 o_0长度的字符开始寻找,长度为1的输出给了$_c

php脚本如下

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$miwen=base64_decode(strrev(str_rot13($miwen)));

//echo $miwen;

$m=$miwen;

for($i=0;$i<strlen($m);$i++){
		
	$_c=substr($m,$i,1);
	$__=ord($_c)-1;    # 字符转数字,在减1
	$__=chr($__);      # 数字转字符 

    $_=$_.$__;         # 拼接字符串

	}

echo strrev($_);        # 反转字符串

在这里插入图片描述

strrev函数

反转字符串
在这里插入图片描述

substr

在这里插入图片描述
从第六位开始,返回之后的值
在这里插入图片描述

ord

在这里插入图片描述
返回第一个字母的ASCII
在这里插入图片描述

chr()

在这里插入图片描述
在这里插入图片描述
从指定的ascii值返回字符
4的十进制ascii是52

str_rot13()

在这里插入图片描述
在这里插入图片描述
一种编码解码函数
对字符串执行 ROT13 转换,ROT13 编码简单地使用字母表中后面第 13 个字母替换当前字母,同时忽略非字母表中的字符。编码和解码都使用相同的函数,传递一个编码过的字符串作为参数,将得到原始字符串。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值