攻防世界-web2 (NSCTF-WEB)

今天在做题无意发现有个比较有意思(被多个平台收录过)

非常适合编码,web,密码初学者

所以今天就把这道题给你们详细整理出来

感谢攻防手机平台和出题方NSCTF✌✌

目录

题目地址

解题过程

这是自己写的PHP脚本

加油各位( •̀ ω •́ )y 期待与君再相逢


题目地址

题目链接icon-default.png?t=M666http://61.147.171.105:63454/

解题过程

打开网址就一串代码

给了我们加密的密文,让我们解出flag

审计一波

 人家既然都说逆向加密算法

那就用逆向思维去观察这串代码

        $_c=substr($_o,$_0,1);   # 每次取一个字符,就是对应的遍历的字符i
        $__=ord($_c)+1;   # 转化为对应的10进制数
        $_c=chr($__);   # 10进制转换为ASCII码
        $_=$_.$_c;    # 累加$_c

for循环,从0到循环到字符串长度
从o 开 始 之 后 _o开始之后 
o开始之后_0长度的字符开始寻找,长度为1的输出给了$_c

先时将flag字符串逆序,

然后每一个ascii码数值+1,

然后base64加密,

然后逆序,

然后再rot13加密

得到加密的密文:a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws

然后我们按照人家的加密思想逆运算一下就出来了flag

这是自己写的PHP脚本

<?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在线编辑网站PHP Hello实例!..https://c.runoob.com/compile/1/运行得到flag

总结  题目不算难,但是需要基本的代码知识,所以特别适合初学者

 加油各位( •̀ ω •́ )y 期待与君再相逢

猜你喜欢

转载自blog.csdn.net/m0_68012373/article/details/125742521