【攻防世界-Web】web2 解题思路

进入环境直接看到题目

题目
很明显我们需要根据代码进行解密

相关函数

  • ord() 函数返回字符串中第一个字符的 ASCII 值。
  • strlen() 函数返回字符串的长度。
  • substr(string,start,length)函数返回字符串的一部分。
  • chr() 函数从指定 ASCII 值返回字符。
  • strrev() 函数反转字符串。
  • str_rot13() 函数对字符串执行 ROT13 编码。(ROT13 编码是把每一个字母在字母表中向前移动 13 个字母得到。数字和非字母字符保持不变。属于凯撒密码)
  • base64_encode()函数对字符串进行base64编码。

代码分析

代码分析
我们只需根据代码的思路进行逆向解答即可。

解题过程

本次解题用到了CTFcrafttools解密工具—— github链接
CTFcracktools

通过工具进行解题
  1. 进行rot13解密
    结果:
    n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf

  2. 反转
    结果:
    fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n

  3. base64解密
    结果:
    ~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg

  4. ASCII码值均-1(这一步上文提到的工具中没有,可以在网页中搜索在线转码工具完成
    结果:
    }77925d0af7327d30646c918bfda5d37b_FTCSN{:galf
    这里我最开始想的是用偏移量为1的凯撒密码解密完成,但是忘记了凯撒密码是只针对字母的

  5. 反转
    结果:
    flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

通过脚本进行解题
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
echo('凯撒解密:');
$a=str_rot13($miwen);
echo($a);
echo("\n");
echo('字符串反转:');
$b=strrev($a);
echo($b);
echo("\n");
echo('base64解密:');
$c=base64_decode($b);
echo($c);
echo("\n");
echo('字符串ascii码值-1:');
$d= null;
for($_0=0;$_0<strlen($c);$_0++){
       
        $_c=substr($c,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        
        $d=$d.$_c;   
    }
echo($d);
echo("\n");
echo('反转后得到flag:');
$flag=strrev($d);
echo($flag);
?>

运行结果:

 凯撒解密:n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf
字符串反转:fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n
base64解密:~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg
字符串ascii码值-1}77925d0af7327d30646c918bfda5d37b_FTCSN{:galf
反转后得到flag:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

最终结果即为得到flag

flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值