攻防世界Web_web2
题目:
直接给php源代码,题目描述是解密。
由代码可以知道$miwen就是flag,而且给出了加密函数。
代码审计:
<?php $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; // flag加密后结果 function encode($str){ // 加密函数,传入字符串$str $_o=strrev($str); // 反字符串 // echo $_o; for($_0=0;$_0<strlen($_o);$_0++){ // for循环字符串长度 $_c=substr($_o,$_0,1); // 从$_0位置返回1个字符,即讲$o字符逐一传给$_c $__=ord($_c)+1; // 字符串首字母转为ASCII +1 $_c=chr($__); // 返回ASCII值对应的字符 $_=$_.$_c; // 拼接两个变量并赋值给$_ } return str_rot13(strrev(base64_encode($_))); // 返回$_base64编码后,返字符串,并进行rot13编码的值 } highlight_file(__FILE__); /* 逆向加密算法,解密$miwen就是flag */ ?>
写出逆向代码:
<?php
$str='a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws';
function decode($str){
$_ = base64_decode(strrev(str_rot13($str)));
$_o=NULL;
for($_0=0;$_0<strlen($_);$_0++){
$_c=substr($_,$_0,1);
$__=ord($_c)-1;
$_c=chr($__);
$_o=$_o.$_c;
}
return strrev($_o);
}
echo $flag=decode($str);
?>
运行一下代码:
posted on 2022-03-01 17:53 shacker_shen 阅读(32) 评论(0) 编辑 收藏 举报