前言

懒得写详细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)的更多相关文章

  1. Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]

    Day34     PHP_encrypt_1(ISCCCTF) fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=   下载下来.zip文件  

  2. Bugku 杂项 眼见非实(ISCCCTF)

    眼见非实(ISCCCTF) 下载文件后,用winhex打开 发现文件头为50 4B 03 04说明是一个压缩文件,还可以看到其中有.docx文件 更改文件后缀为 .zip 解压后发现 这个文件用wor ...

  3. bugku crypto 告诉你一个秘密(ISCCCTF)

    emmmm....有点坑 题目: 636A56355279427363446C4A49454A7154534230526D6843 56445A31614342354E326C4B4946467A57 ...

  4. bugku login2 writeup 不使用vps的方法

    0x00前言 这个题是sql注入与命令执行相结合的一个题,思路有两个: 一.:sql注入登录web系统,命令执行反弹公网IP监听端口(需要vps),此种方法详见链接:http://www.bugku. ...

  5. bugku 密码学一些题的wp

    ---恢复内容开始--- 1.滴答滴 摩斯密码,http://tool.bugku.com/mosi/ 2.聪明的小羊 从提示猜是栅栏密码,http://tool.bugku.com/jiemi/ 3 ...

  6. 于bugku中游荡意外得到关于CBC翻转攻击思路

    个人简介:渣渣一枚,萌新一个,会划水,会喊六六今天在bugku遇到关于CBC翻转攻击的题目,总结了一下关于CBC翻转攻击的原理,以及关于这道题目的解题思路个人博客:https://www.cnblog ...

  7. http://www.bugku.com:Bugku——PHP伪协议+魔幻函数+序列化的综合应用(http://120.24.86.145:8006/test1/)

      这一道题目,幸好俺有基础知识护体,不然还真干不掉.     首先,登录看题目,取消隐藏代码的注释.可知可输入三个参数txt.file和password并进行逻辑判断:应该让txt==‘welcom ...

  8. http://www.bugku.com:Bugku——备份是个好习惯(http://120.24.86.145:8002/web16/)

      看了bugku的这道题,陌生又熟悉.     题目首先说[备份是个好习惯],访问网站只有一串字符,,,,,emmmmm,这句话表明人家经常做备份,所以咯,肯定在网站哪里备份有网页信息.嘻嘻   1 ...

  9. http://www.bugku.com:Bugku——jsfuckWEB5(http://120.24.86.145:8002/web5/index.php)

      今天又做了bugku上面的一道题.使用到了jsfuck,它是什么捏?   它是Javascript原子化的一种简易表达方式,用[]()!+就可以表示所有的Javascript字符,不依赖于浏览器. ...

  10. http://www.bugku.com:Bugku——SQL注入1(http://103.238.227.13:10087/)

    Bugku——SQL注入1(http://103.238.227.13:10087/) 过滤了几乎所有的关键字,尝试绕过无果之后发现,下面有个xss过滤代码.经搜索得该函数会去掉所有的html标签,所 ...

随机推荐

  1. LinkageSel无限级联动下拉菜单

    http://files.cnblogs.com/files/chenghu/LinkageSel-master.zip

  2. Docker学习笔记之-在虚拟机VM上安装CentOS 7.8

    虚拟机VM版本:VMware Workstation Pro 16 中文虚拟机软件专业版 到官网下载即可,或者也可以通过下边链接下载 下载地址: http://www.epinv.com/post/1 ...

  3. VMware Workstatition启动虚拟机电脑蓝屏

    电脑出了点问题,重装了系统,结果安装VMware之后,一启动虚拟机电脑就蓝屏重启. 系统是win10 19041 开始用的原来下载的vmware15.0,创建虚拟机蓝屏,重启之后可以创建.创建完以后启 ...

  4. C#之txt的数据写入

    一.背景 小伙伴们在使用C#开发时,可能需要将一些信息写入到txt,这里就给大家介绍几种常用的方法. 二.思路 2.1将由字符串组成的数组写入txt 此种方法不需要使用Flush和Close(). 如 ...

  5. jmeter 使用总结

    安装和启动(mac) 下载jmeter安装包并解压,进入其bin目录,执行./jmeter.sh或sh jmeter,打开就会出现如下画面 Thread Group 新建线程组,如下图 需要设置的选项 ...

  6. java数据结构-10循环队列

    一.概念: 循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用 二.代码实现: @SuppressWarnings("unchecked" ...

  7. Redis---09Redis集群(二)

    一.集群的Jedis开发: 1.导入jar包 jedis-2.8.1.jar commons-pool2-2.4.2.jar 2.代码 public class TestCluster { publi ...

  8. Spark为什么只有在调用action时才会触发任务执行呢(附算子优化和使用示例)?

    Spark算子主要划分为两类:transformation和action,并且只有action算子触发的时候才会真正执行任务.还记得之前的文章<Spark RDD详解>中提到,Spark ...

  9. SpringBoot中的全局异常处理

    SpringBoot中的全局异常处理 本篇要点 介绍SpringBoot默认的异常处理机制. 如何定义错误页面. 如何自定义异常数据. 如何自定义视图解析. 介绍@ControllerAdvice注解 ...

  10. STM32入门系列-GPIO结构

    已经了解了STM32 GPIO的基本概念及引脚分类.现在来看下STM32 GPIO内部的结构是怎样的.IO端口位的基本结构如下图所示. 从图中可以看出GPIO内部结构还是比较复杂的,只要将这张GPIO ...