攻防世界-web2(逆向加密算法)

简介: 攻防世界-web2(逆向加密算法)

打开链接是PHP源码

给了一串密文,并对这串密文进行了一系列操作加密,注释里说解密$miwen就是flag

在此我们先介绍一些PHP内置函数:

strrev(string): 反转字符串


strlen(string): 返回字符串的长度


substr(string, start, length): 返回字符串的一部分


string: 所需要的字符串


start: 在字符串何处开始


length: 规定被返回字符串的长度,默认是直到字符串的结尾


ord(string): 返回字符串首个字符的 ASCII 值


chr(): 从指定的 ASCII 值返回对应的字符


str_rot13(string): 对字符串执行 ROT13 编码


ROT13 编码:把每一个字母在字母表中向前移动 13 个字母,数字和非字母字符保持不变,


编码和解码都是由该函数完成的,如果把已编码的字符串作为参数,那么将返回原始字符串


base64_encode(string): 使用 MIME base64 对数据进行编码


知道这些后我们开始写PHP解密脚本


因为最后返回的是 str_rot13(strrev(base64_encode($_)))


所以我们先对密文进行这三个的解密(注意顺序要反过来)


即 base64_decode(strrev(str_rot13($miwen)))所以前半部分脚本为:

<?php
    $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
    $Myon = base64_decode(strrev(str_rot13($miwen)));
    echo $Myon;
?>

(Myon只是我随便定义的一个变量,PHP中$就是变量的意思)

得到 ~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg

后半部分脚本只需对它给的源码进行一些修改即可

给的源码:

 for($_0=0;$_0<strlen($_o);$_0++){
        $_c=substr($_o,$_0,1);
        $__=ord($_c)+1;
        $_c=chr($__);
        $_=$_.$_c;   
    } 

将解密后得到的字符串赋给 $_o

后面的 +1 变为 -1

输出最后的变量

<?php
$_o = "~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg";
 for($_0=0;$_0<strlen($_o);$_0++){
        $_c=substr($_o,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        $_=$_.$_c;   
    } 
echo $_;
?>

可是我们发现并没对,运行后得到 }77925d0af7327d30646c918bfda5d37b_FTCSN{:galf

再次查看源码,发现前面还有一句  $_o=strrev($str);

strrev() 是反转字符串,所以我们这里还要对它进行一个反转:

<?php

echo strrev("}77925d0af7327d30646c918bfda5d37b_FTCSN{:galf");

?>



得到 flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977


合起来的PHP脚本为:

<?php
   $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
   $_o = base64_decode(strrev(str_rot13($miwen)));
 for($_0=0;$_0<strlen($_o);$_0++){
        $_c=substr($_o,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        $_=$_.$_c;   
    } 
echo strrev($_);
?>

目录
相关文章
|
2月前
攻防世界12-baby_web
攻防世界12-baby_web
攻防世界---baby_web
攻防世界---baby_web
|
2月前
|
数据安全/隐私保护
攻防世界web-----easyupload
攻防世界web-----easyupload
|
2月前
|
Go PHP
攻防世界web---fileinclude
攻防世界web---fileinclude
|
4天前
|
SQL 安全 Java
Java Web应用的安全防护与攻防深度剖析
Java Web应用的安全防护与攻防深度剖析
|
16天前
|
开发框架 Java .NET
WAF攻防-权限控制&代码免杀&异或运算&变量覆盖&混淆加密&传参
WAF攻防-权限控制&代码免杀&异或运算&变量覆盖&混淆加密&传参
|
4天前
|
SQL 监控 安全
Java Web应用的安全防护与攻防策略
Java Web应用的安全防护与攻防策略
攻防世界---web---warmup
攻防世界---web---warmup
攻防世界---web---warmup
|
2月前
|
数据库
攻防世界---web---NewsCenter
攻防世界---web---NewsCenter
|
2月前
|
SQL 开发框架 .NET
攻防世界---web---supersqli
攻防世界---web---supersqli