XCTF-高手进阶区:web2
题目:
<?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相关推荐
- 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp
文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...
- 攻防世界 web高手进阶区 10分题 weiphp
前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...
- 攻防世界-web高手进阶区
文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...
- 攻防世界 Reverse高手进阶区 2分题 reverse-for-the-holy-grail-350
前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是reverse-for-the-holy-grail-350的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数 ...
- 攻防世界 web高手进阶区 9分题 favorite_number
前言 继续ctf的旅程 开始攻防世界web高手进阶区的9分题 本文是favorite_number的writeup 解题过程 进入界面 简单的代码审计 首先是个判断,既要数组强等于,又要首元素不等 然 ...
- 攻防世界 Crypto高手进阶区 3分题 wtc_rsa_bbq
前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是wtc_rsa_bbq的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一个无后缀文件 扔 ...
- 攻防世界高手进阶区——dice_game
攻防世界高手进阶区--dice_game 题目里面啥都没有. 一.分析文件 checksec 只有栈溢出保护关闭了,其他都是开着的. 运行 可以看出是要猜数字,猜对50次. ida逆向 __int64 ...
- 攻防世界高手进阶区 ——forgot
攻防世界高手进阶区 --forgot 看了半天,啥也没看懂,做出来了才发现啥也不是. 一,分析文件 checksec 还好,只开启了堆栈不可执行. 运行一下 翻译了一下,应该是判断邮箱是否合乎规矩. ...
- forgot [XCTF-PWN][高手进阶区]CTF writeup攻防世界题解系列13
题目地址:forgot 本题是高手进阶区的第二题,恭喜大家已经进入高手行列!好假好假,哈哈哈! 废话不说,看看题目先 这个题目有很长的描述,但是都是废话,不去管他了. 照例下载附件,做下安全检查 ro ...
- 攻防世界 Crypto高手进阶区 3分题 你猜猜
前言 继续ctf的旅程 攻防世界Crypto高手进阶区的3分题 本篇是你猜猜的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 得到一串16进制 504B03040A ...
最新文章
- 第十六届全国大学生智能车汽车竞赛第二次扩大会议
- 【PaddlePaddle系列】报错解决方法合集 (不定时更新)
- html5+原生js画的瀑布,果然程序员不适合做设计吗?
- mongodb 新增字段
- JS 变量的数据类型转换
- circle函数用法 turtle_Turtle库与Time库基础知识分享(详细)
- (进阶篇)Redis6.2.0 集群 主从复制_原理剖析_02
- 输出整数各位数字 (15 分)
- PostgreSQL复制特性历史漫谈-士别三日,当刮目相看
- 各个浏览器显示版本(IE,火狐)
- 大部分Java程序员都会忽略的几个问题,你中招没?
- POJ 1094 Sorting It All Out 【拓扑排序】
- 什么是java中的监听器_java中什么是监听器
- spp色散关系 matlab,表面等离极化激元(SPP)基本原理教案分析.ppt
- matlab计算电磁场程序,电磁场与波:电磁材料及MATLAB计算
- Mac双开微信客户端方法
- 揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第3部分...
- 【python】图片处理_分割图片
- 鸿蒙系统主页面斜纹,《中国美术欣赏》[精选].doc
- 促进社群活跃的几种方法,你get到了吗
热门文章
- 什么是野指针和内存泄露?如何避免野指针
- (转)fatal error C1853: precompiled header file is from a previous version of the compiler, or the pre
- Java合并pdf文件
- arcgis-online-python-scripts
- 一文快速了解oCPX
- Redis cluster原理
- html读取C#参数问题
- Oracle 11g Dataguard参数详解
- Codeforces Round #250 (Div. 2) A - The Child and Homework
- 第一部分 Mysql的基础