XCTF-web2

首先打开题目以后的代码如下:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function encode($str){    
    $_o=strrev($str);                   #进行字符串反转 
    // echo $_o;   
        
    for($_0=0;$_0<strlen($_o);$_0++){
                                        
        $_c=substr($_o,$_0,1);         #在for循环里面substr 函数主要是将$_o 的值逐个赋值给$_c
        $__=ord($_c)+1;                #ord函数是将$_c 的值转换为ascII                    
        $_c=chr($__);                  #chr函数是将ascII的值转换为相应的字符。
        $_=$_.$_c;               #这段代码在文中应该先对$_定义为null,然后将$_c的值逐个赋值给$_
    } 
    return str_rot13(strrev(base64_encode($_))); #这段代码就是先进行解码,在反转字符串,在进行str_rot13加密
}

highlight_file(__FILE__);  #这段应该是语法高亮显示的意思
/*
   逆向加密算法,解密$miwen就是flag
*/
?>

这道题只要能看懂代码,就比较简单了,解密代码如下:


<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$v=str_rot13($miwen);
#echo $v;
#echo "\n";
$v1=strrev($v);
#echo $v1;
$v2=base64_decode($v1);
#echo "\n";
#echo $v2;
$n='';
for ($i=0;$i<strlen($v2);$i++){
	$c=substr($v2,$i,1);
	$c=ord($c)-1;
	$c=chr($c);
	$n=$n.$c;
}
$n=strrev($n);
echo $n;
?>


#最后跑出来的flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值