前言

懒得写详细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. subprocess中命令为参数序列和字符串的区别

    参数args 参数args可以是一个参数序列,也可以是一个单独的字符串.参数序列通常是首选的,因为它允许模块处理参数的转义和引号(例如,允许文件名中有空格). 如果传递参数序列,默认情况下,程序执行序 ...

  2. Django (学习第一部 基础操作)

    django 1 django 文件相关信息 2 Python创建django 3 命令行创建django 4 Django 必会三板斧 5 静态文件配置 6 request对象方法 7 pychar ...

  3. CTF相关

    https://blog.csdn.net/zxl2016/article/details/96482763

  4. Javascript中this作用域以及bind方法的重写

    这是一个最近遇到的笔试题,出于尊重,不会说出该公司的名字,源于自身比较少,笔试题是将bind方法用ES3重写,使用bind这个方法,导致一时半会懵了,只记得bind可以改变this的作用域. 作为查漏 ...

  5. Java面试题集(一)答案汇总(1-22)

    java基础篇: 1.1.Java基础 (1)面向对象的特性:继承.封装和多态 以下都是查阅大神的博客后,摘录的内容:来源http://www.cnblogs.com/chenssy 1.继承 继承是 ...

  6. Linux文件操作常用命令

    一.一些文件操作命令. 1.cd /home  进入"home目录" 2.cd ../ 返回上一级目录 3.cd -  返回上次所在的目录 4.pwd 显示工程路径 5.ll 显示 ...

  7. vue自定义指令 默认图片

    /**  * 检测图片是否存在  * @param url  */ function imageIsExist(url) {     return new Promise((resolve) => ...

  8. 一起学Vue:UI框架(element-ui)

    目标 使用Vue+ElementUI构建一个非常简单CRUD应用程序,以便您更好地了解它的工作方式. 效果页面 比如我们要实现这样列表.新增.编辑三个页面: 列表页面 新增页面 编辑页面 安装elem ...

  9. ThinkPHP中,运用PHPExcel,将数据库导出到Excel中

    1.将PHPExcel插件放在项目中,本人位置是ThinkPHP文件夹下,目录结构如下/ThinkPHP/Library//Vendor/...2.直接根据模型,配置三个变量即可使用./** * Ex ...

  10. vue3.0-如何切换路由-路由模式ts

    如何更换路由模式 vue3版本如何切换路由模式?(注:更改后要重启下项目才能看到效果.) 博主,我搜了大半天的,你是怎么找到的? 如下图可看到