题目:

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_o=strrev($str);   //反转字符串// echo $_o;for($_0=0;$_0<strlen($_o);$_0++){$_c=substr($_o,$_0,1);   //循环获取字符串中的每个字符$__=ord($_c)+1;    //将获取到的字符串进行ASCII编码并+1$_c=chr($__);   //将+1后的ASCII解码为字符$_=$_.$_c;   //将每次解码后的字符拼接起来} return str_rot13(strrev(base64_encode($_)));//将$_先base64加密,然后反转字符串,最后rot13加密
}highlight_file(__FILE__);
/*逆向加密算法,解密$miwen就是flag
*/
?>

由题可知,这是根据加密代码,进行解密获得flag

加密过程:

(1)使用strrev函数反转字符串
(2)将(1)获得到的字符串进行循环,获取每一位字符进行ASCII编码并+1,最后拼接
(3)将循环获得到的最后的值base64_encode
(4)再字符转反转
(5)最后进行rot13解密

解密过程就反过来

解密过程:

(1)先将已经被rot13加密的字符串解密
(2)将获得的结果反转字符串
(3)再进行base64_decode解密
(4)再将(3)获得到的字符串进行循环,获取字符串中的每个字符串并ASCII编码-1,最后拼接
(5)最后将(4)获得到的字符串进行反转字符串

解密代码:

<?php
function decode(){$a="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";$b=str_rot13($a);echo $b."\n";//n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf$fanzhuan=strrev($b);echo $fanzhuan."\n";//fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n$jiema=base64_decode($fanzhuan);echo $jiema."\n";//~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmgfor($_0=0;$_0<strlen($jiema);$_0++){$_c=substr($jiema,$_0,1);$__=ord($_c)-1;$_c=chr($__);$_=$_.$_c;}$result=strrev($_);echo($result);
}
decode();
?>
输出:
n1mYotDfPRFRVdEYjhDNlZjYld2Y5IjOkdTN3EDNlhzM0gzZiFTZ2MjO4gjf
fjg4OjM2ZTFiZzg0MzhlNDE3NTdkOjI5Y2dlYjZlNDhjYEdVRFRPfDtoYm1n
~88:36e1bg8438e41757d:29cgeb6e48c`GUDTO|;hbmg
flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}PHP Notice:  Undefined variable: _ in /usercode/file.php on line 18

XCTF-高手进阶区:web2相关推荐

  1. 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp

    文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...

  2. 攻防世界 web高手进阶区 10分题 weiphp

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...

  3. 攻防世界-web高手进阶区

    文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...

  4. 攻防世界 Reverse高手进阶区 2分题 reverse-for-the-holy-grail-350

    前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是reverse-for-the-holy-grail-350的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数 ...

  5. 攻防世界 web高手进阶区 9分题 favorite_number

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...

  6. 攻防世界 Crypto高手进阶区 3分题 wtc_rsa_bbq

    前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是wtc_rsa_bbq的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一个无后缀文件 扔 ...

  7. 攻防世界高手进阶区——dice_game

    攻防世界高手进阶区--dice_game 题目里面啥都没有. 一.分析文件 checksec 只有栈溢出保护关闭了,其他都是开着的. 运行 可以看出是要猜数字,猜对50次. ida逆向 __int64 ...

  8. 攻防世界高手进阶区 ——forgot

    攻防世界高手进阶区 --forgot 看了半天,啥也没看懂,做出来了才发现啥也不是. 一,分析文件 checksec 还好,只开启了堆栈不可执行. 运行一下 翻译了一下,应该是判断邮箱是否合乎规矩. ...

  9. forgot [XCTF-PWN][高手进阶区]CTF writeup攻防世界题解系列13

    题目地址:forgot 本题是高手进阶区的第二题,恭喜大家已经进入高手行列!好假好假,哈哈哈! 废话不说,看看题目先 这个题目有很长的描述,但是都是废话,不去管他了. 照例下载附件,做下安全检查 ro ...

  10. 攻防世界 Crypto高手进阶区 3分题 你猜猜

    前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是你猜猜的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一串16进制 504B03040A ...

最新文章

  1. 第十六届全国大学生智能车汽车竞赛第二次扩大会议
  2. 【PaddlePaddle系列】报错解决方法合集 (不定时更新)
  3. html5+原生js画的瀑布,果然程序员不适合做设计吗?
  4. mongodb 新增字段
  5. JS 变量的数据类型转换
  6. circle函数用法 turtle_Turtle库与Time库基础知识分享(详细)
  7. (进阶篇)Redis6.2.0 集群 主从复制_原理剖析_02
  8. 输出整数各位数字 (15 分)
  9. PostgreSQL复制特性历史漫谈-士别三日,当刮目相看
  10. 各个浏览器显示版本(IE,火狐)
  11. 大部分Java程序员都会忽略的几个问题,你中招没?
  12. POJ 1094 Sorting It All Out 【拓扑排序】
  13. 什么是java中的监听器_java中什么是监听器
  14. spp色散关系 matlab,表面等离极化激元(SPP)基本原理教案分析.ppt
  15. matlab计算电磁场程序,电磁场与波:电磁材料及MATLAB计算
  16. Mac双开微信客户端方法
  17. 揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第3部分...
  18. 【python】图片处理_分割图片
  19. 鸿蒙系统主页面斜纹,《中国美术欣赏》[精选].doc
  20. 促进社群活跃的几种方法,你get到了吗

热门文章

  1. 什么是野指针和内存泄露?如何避免野指针
  2. (转)fatal error C1853: precompiled header file is from a previous version of the compiler, or the pre
  3. Java合并pdf文件
  4. arcgis-online-python-scripts
  5. 一文快速了解oCPX
  6. Redis cluster原理
  7. html读取C#参数问题
  8. Oracle 11g Dataguard参数详解
  9. Codeforces Round #250 (Div. 2) A - The Child and Homework
  10. 第一部分 Mysql的基础