攻防世界php2_攻防世界-web2

实验准备:

firefox浏览器、php执行环境(比如phpstudy)

打开实验:

20200817164639863359.png

20200817164640393776.png

代码分析:

$_o=strrev($str);  对$str字符串进行 字符反转(比如 abc = cba)

第二部分 for{……} 就是对 $str字符串 每个字符+1,(如:a=b、c=d)

return str_rot13(strrev(base64_encode($_)));  括号具有优先级,里面优先级最高,所以,按顺序:base64_encode 先对 for循环后的字符串 进行base64

加密,strrev 对字符串进行反转,str_rot13 对字符串进行ROT13编码,return 返回值为:$miwen

编写解密代码:定义一个decode方法,依次对字符串进行 ROT13解码 -> 字符串反转 -> base64解密 -> for{……} 每个字符减一 -> 字符串反转 -> 输出flag

$str = ‘a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws‘;

function decode($str){

$_o = base64_decode(strrev(str_rot13($str)));

for($_0=0;$_0

$_c=substr($_o,$_0,1);

$__=ord($_c)-1;

$_c=chr($__);

$_=$_.$_c;

}

return strrev($_);

}

echo decode($str);

?>

执行PHP文件需要打开apache服务(我用的是PhpStudy),当然思路清楚了,用python等其他语言写也ok。

20200817164640690185.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值