(ctf)攻防世界web模块020web2

本文详细分析了一道CTF比赛中的Web安全题目,重点在于理解并逆向一个涉及字符串倒置、ASCII码加一以及str_rot13加密的解密过程。通过C++实现str_rot13函数,最终揭示了加密算法的趣味性。
摘要由CSDN通过智能技术生成

题目

在这里插入图片描述
首先来到给定的地址

在这里插入图片描述

题意很明确$miwen是加密之后的字符串,我们只需要逆向解密出miwen就能得到flag
我们先来代码审计

$_o=strrev($str); 

strrev()函数是字符串的倒置

for($_0=0;$_0<strlen($_o);$_0++)

for循环,从零开始循环字符串的长度次

        $_c=substr($_o,$_0,1);
        $__=ord($_c)+1;
        $_c=chr($__);
        $_=$_.$_c;

这里是for循环的内部,也就是每次循环要做的事情,首先是一个substr()函数
第一个参数是目标字符串,第二个参数是起始位置,第三个参数是截取的长度
那就是说,每次截取的长度是1,起始位置从0到字符串末尾

第二个函数是ord将字符串的第一位转换成ascii码的形式,
$__变量存储它加一的值

第三个函数,chr()将ascii码转换成字符,然后又存到了$_c中

最后的变量每次加上当前的字符

这个循环的作用其实就是将字符串中的每个字符做了+1的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White boy&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值