WEB:web2

背景知识

        代码审计

题目

 

 由上述可知,这段代码定义了一个函数encode,接受一个字符串参数$str,并返回对其进行加密后的结果

加密算法包括:

  1. 使用strrev函数将字符串进行翻转
  2. 对翻转后的每个字符,将其ASCII值加1,然后转换为相应的字符
  3. 将得到的新字符使用base64编码,再编码后的结果进行strrev翻转和str_rot13处理,最终得到加密后的结果

str_rot13 是一个简单的字符替换算法,将每个字符替换为它在字母表中向后移动 13 位后对应的字符。这个算法是一种经典的简单加密方法,可以用来隐藏字符串的真实含义。

可通过逆向加密算法的步骤,对 $miwen 进行相反的操作,即先使用 str_rot13 还原,然后使用 strrev 翻转,再使用 base64 解码,最后对每个字符的 ASCII 值减 1 ,再进行翻转即可得到 flag。

先得到加密的密文:a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws

解密脚本:

<?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($_); # 反转字符串
?>

PHP在线编辑网站:PHP 在线工具 | 菜鸟工具

得到flag 

参考学习文章:

[CTF/网络安全]攻防世界 web2 解题详析_web2 攻防世界_秋说的博客-CSDN博客

【愚公系列】2023年05月 攻防世界-Web(web2)-腾讯云开发者社区-腾讯云

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值