bugku-PHP_encrypt_1(ISCCCTF)
前言

懒得写详细wp了。。。。
我佛了 这个题纠结好久.........
前言
需要解密的密文:
fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=
打开赛题审源码分析
1 function encrypt($data,$key)
2 {
3 $key = md5('ISCC');
4 $x = 0;
5 $len = strlen($data);
6 $klen = strlen($key);
7
8 for ($i=0; $i < $len; $i++) {
9
10 if ($x == $klen)
11 {
12 $x = 0;
13 }
14 @$char .= $key[$x]; //把key里面的第一个字符拼接到char里面
15 $x+=1; //x执行一次循环加一次1 有多少个字符串加多少次
16 print_r("88:",$key[$x]);
17 }
18
19 echo $char."<br>";
20 //传入有多少个字符串就取前多少个cmd5字符串赋值给char
21
22
23 for ($i=0; $i < $len; $i++) {
24 //取第data里面的第i个数据加上char里面的第i个数据 把他们的ord()ASCII值相加取余128
25 $str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
26 }
27 print($str);
28
29 //base64位加密
30 return base64_encode($str);
31 }
逆向思维用PHP写解密脚本
1 function jiemi($str1){
2 echo "初始值:".$str1."<br>";
3 $str=base64_decode($str1);
4
5
6 $lens=strlen($str);
7 $j=0;
8 echo "经过base64解码后:".$str."<br>";
9 echo "长度:".$lens."<hr>";
10 $key1 = md5('ISCC');
11 $key2 = md5('ISCC');
12 $key=$key1.$key2;
13 // for($j=0;$j<$lens;$j++){
14 // //$ord_str=ord($str[i]);
15 // echo $str[j];
16
17 // }
18 $jie_str="";
19 for ($i=0; $i<$lens; $i++) {
20 echo $i;
21 echo "第一次字符串加密".$str[$i]."<br>";
22
23 // @$str .= chr((ord($data[$i]) + ord($char[$i])) % 128);
24
25 $str1=ord($str[$i]);
26 echo "经过ord转换成ASCII值:".$str1."<br>";
27
28 if($str1<128){
29 $str1=$str1+128;
30 }else if($str>128){
31 $str1=$str+128;
32 }else if($str>=256){
33 $str1=256+$str;
34 }
35 echo "经过128取余逆向:".$str1."<br>";
36
37 $str2=$str1-ord($key[$i]);
38 echo "减去CMD5附加的值:".$str2.":".$key[$i]."<br>";
39 $str3=chr($str2);
40 echo "emm:".$str3."<br>";
41
42 $jie_str=$jie_str.$str3;
43 //$jie_str=$str3;
44
45
46 }
47
48 print_r($jie_str);
49 }
经过修改代码得到两段代码合并即可
//�lag�{asdqwdfasfdawfefqwdqwdadwqadawd} //29行代码+128
//F���:��������������������������������� //29行代码不加128
////Flag:{asdqwdfasfdawfefqwdqwdadwqadawd} 合并后flag
bugku-PHP_encrypt_1(ISCCCTF)的更多相关文章
- Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]
Day34 PHP_encrypt_1(ISCCCTF) fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA= 下载下来.zip文件
- Bugku 杂项 眼见非实(ISCCCTF)
眼见非实(ISCCCTF) 下载文件后,用winhex打开 发现文件头为50 4B 03 04说明是一个压缩文件,还可以看到其中有.docx文件 更改文件后缀为 .zip 解压后发现 这个文件用wor ...
- bugku crypto 告诉你一个秘密(ISCCCTF)
emmmm....有点坑 题目: 636A56355279427363446C4A49454A7154534230526D6843 56445A31614342354E326C4B4946467A57 ...
- bugku login2 writeup 不使用vps的方法
0x00前言 这个题是sql注入与命令执行相结合的一个题,思路有两个: 一.:sql注入登录web系统,命令执行反弹公网IP监听端口(需要vps),此种方法详见链接:http://www.bugku. ...
- bugku 密码学一些题的wp
---恢复内容开始--- 1.滴答滴 摩斯密码,http://tool.bugku.com/mosi/ 2.聪明的小羊 从提示猜是栅栏密码,http://tool.bugku.com/jiemi/ 3 ...
- 于bugku中游荡意外得到关于CBC翻转攻击思路
个人简介:渣渣一枚,萌新一个,会划水,会喊六六今天在bugku遇到关于CBC翻转攻击的题目,总结了一下关于CBC翻转攻击的原理,以及关于这道题目的解题思路个人博客:https://www.cnblog ...
- http://www.bugku.com:Bugku——PHP伪协议+魔幻函数+序列化的综合应用(http://120.24.86.145:8006/test1/)
这一道题目,幸好俺有基础知识护体,不然还真干不掉. 首先,登录看题目,取消隐藏代码的注释.可知可输入三个参数txt.file和password并进行逻辑判断:应该让txt==‘welcom ...
- http://www.bugku.com:Bugku——备份是个好习惯(http://120.24.86.145:8002/web16/)
看了bugku的这道题,陌生又熟悉. 题目首先说[备份是个好习惯],访问网站只有一串字符,,,,,emmmmm,这句话表明人家经常做备份,所以咯,肯定在网站哪里备份有网页信息.嘻嘻 1 ...
- http://www.bugku.com:Bugku——jsfuckWEB5(http://120.24.86.145:8002/web5/index.php)
今天又做了bugku上面的一道题.使用到了jsfuck,它是什么捏? 它是Javascript原子化的一种简易表达方式,用[]()!+就可以表示所有的Javascript字符,不依赖于浏览器. ...
- http://www.bugku.com:Bugku——SQL注入1(http://103.238.227.13:10087/)
Bugku——SQL注入1(http://103.238.227.13:10087/) 过滤了几乎所有的关键字,尝试绕过无果之后发现,下面有个xss过滤代码.经搜索得该函数会去掉所有的html标签,所 ...
随机推荐
- 【事件中心 Azure Event Hub】关于EventHub中出现Error时候的一些问题(偶发错误,EventHub后台升级,用户端错误,Retry机制的重要性)
请问对偶发的定义是多少频率? 针对偶发的定义,主要是看发生的时间非常短,次数极少(如 10次以内),并且发生的时候EventHub其他分区或其他连接都是正常接收和发送数据.所以对于频率是没有明确的定义 ...
- JS错误写法[清除DOM]
前言 我现在总结一下我之前敲代码犯的错误,清除DOM元素,我们开始写代码吧! HTML <h1 style="font-size: 18px;font-weight: bold;col ...
- ArrayBlockingQuque摘要
ArrayBlockingQuque 优势 线程同步,线程安全 对应空或满时,take\put操作将阻塞 内部是一个数组,每个元素不会产生额外的处理对象,如Node 基于什么 ReentrantLoc ...
- C2. Power Transmission (Hard Edition) 解析(思維、幾何)
Codeforce 1163 C2. Power Transmission (Hard Edition) 解析(思維.幾何) 今天我們來看看CF1163C2 題目連結 題目 給一堆點,每兩個點會造成一 ...
- Linux 系统编程 学习:05-进程间通信2:System V IPC(2)
Linux 系统编程 学习:05-进程间通信2:System V IPC(2) 背景 上一讲 进程间通信:System V IPC(1)中,我们介绍了System IPC中有关消息队列.共享内存的概念 ...
- FROM DELETE LIBRARY TO RUN の Django路由和视图
一.requests安装 · requests是什么? request是python实现的简单易使用的http库 · 如何安装? pip install requests ·检测是否成功 import ...
- DP百题练索引
就是一篇还在咕的文章 DP百题练(一) DP百题练(二) DP百题练(三)
- Verilog小总结
Verilog小总结 基础 assign assign作为一个组合逻辑常用的语句,可认为是将电线连接起来,当然它能做的不仅仅是将一个输入直接输出,它能把输入信号进行逻辑运算后再输出.当assign左右 ...
- JVM学习(五) -执行子系统
虚拟机和物理机的区别.两种都有代码执行能力.物理机的执行引擎是建立在处理器.硬件.指令集和操作系统上.而虚拟机的执行引擎是有自己实现的.因此可以自行的制定指令集和执行引擎的结构关系. 个人理解:分为三 ...
- 三十二张图告诉你,Jenkins构建Spring Boot 有多简单~
持续原创输出,点击上方蓝字关注我 目录 前言 如何安装Jenkins? 环境准备 开始安装Jenkins 初始化配置 访问首页 输入管理员密码 安装插件 创建管理员 实例配置 配置完成 构建Sprin ...