• 2017-6-4 CTF解题报告


    1.签到题

    附件

    扫描二维码得到

    ZCTF{WELCOME_TO_20-209}

    2.阿斯克的秘密

    从前有个叫做阿斯克的人,他写了一句话,聪明的你能明白他写的是什么吗?

    附件

    int a;
    while(scanf("%d",&a)!=EOF)
    printf("%c",(char)a);
    

     将里面的数字输入到程序中即可;

    3.送小可爱啦!!!

    做出这一题的送小可爱一只

    附件

    用UE打开——搜索“flag”

    得到flag  {wo_shi_xiao_ke_ai}

    4。困在栅栏里的人是谁

     附件

    下载图片后改扩展名为rar

    打开压缩包发现有一个文件

    文件里是   4c665f78647770685f21

    这是16进制的。我猜答案肯定是字符串的所以转字符串;

    根据题目和图片得到线索:栅栏(密码) &   凯撒(密码)

    所以把16进制分栏,发现分栏后转不成字符串

    那么先转字符串再分栏

     

    分栏后把得到的字符串进行凯撒解密

    代码如下:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int main()
    {
        char c[]={"l_dp_fxwh!"} ;
      
    int l=strlen(c); for (int i = 1; i < 26; i++) { for (int j = 0; j < l; j++) { if (c[j] + i > 'z'&&c[j] >= 'a'&&c[j] <= 'z') { printf("%c", c[j] + i - 26); } else if (c[j] >= 'a'&&c[j] <= 'z') printf("%c", c[j] + i); else printf("%c", c[j]); } printf(" "); } }

     一个一个试,把得到的字符串放程序里跑一遍;

    (这个程序只能转小写的,所以里面有个大写字母要改成小写的,最后再改成大写)

    发现在5的时候

     有个I_am_cute!

    别的都不是正常英文;

    那就是这个了~

    具体操作:

    转字符串;

    分栏1,2,3....  <-----

    程序里跑一遍       |

    发现不行,分栏++--------

    发现可以,get答案

    5.土豪聪

    hc有很多txt,每个txt里面都有一笔十分宝贵的财富(也就是一个三位数而已),它们的财富值计算公式如下 value=filename^content 其中^表示乘方,比如5^4=5*5*5*5=625,可是钱多也很苦恼,hc连自己有多少财富值都不知道了, 聪明的你能帮hc算算他有多少财富值吗? 由于数据比较大,请将结果对9973求余

    附件

    解压后发现有100个txt,每个txt里有一个三位数字;

    把这些txt合并到一个里,(百度方法)用cmd命令;

    把所有txt输入到111.txt(因为111.txt也在这个范围里,所以合并完这个111.txt也把自己复制了一次)

    得到的是没换行的!没关系~

     

    写个程序辣~

    #include<iostream>
    #include<stdio.h>
    #include<fstream>
    #include<string>
    #define mod 9973
    using namespace std;
    int pow4(int a, int b) //快速幂,百度有模板
    {
        int r = 1, base = a;
        while (b) {
            if (b & 1) 
            {
                r *= base; r = r%mod;
            }
            base *= base;
            base %= mod;
            b >>= 1;
        }
        return r;
    }
    int main()
    {
        ifstream cin("111.txt");    //c++输入流重定向,从文件111.txt输入
        string s;
        cin >> s;    //输入字符串;
        int t, sum;
        sum = 0;
        int num = 0;
        for (int i = 0; i < s.size(); )
        {
            int a = 0;
            for (t = 0; t < 3; t++) //每三个是一个数
            {
                a = a * 10 + s[i] - '0';
                i++;
            }
            num++;
            sum += pow4(num, a);//快速幂
            sum %= mod;
        }
        cout << sum << endl;
    }

    然后结果

     

    6。移位密码

    明文是小写的

    附件

    把大括号里的东西换成小写,写个程序辣~

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<fstream>
    using namespace std;
    int main()
    {
        char c[] = { "qduqiogkuijyed" };
        int l = strlen(c);
        for (int i = 1; i < 26; i++)
        {
            for (int j = 0; j <l; j++)
            {
                if (c[j] + i > 'z')
                {
                    printf("%c", c[j] + i - 26);
                }
                else
                    printf("%c", c[j]+i);
            }
            printf("
    
    ");
        }
    }

    结果里有一个“aneasyquestion”

    这就答案!

    7.py交易

    附件

    用py2.7运行一下发现是个死循环

    在线反编译py

    把除了循环的代码复制到py控制台里运行

    得到

    答案就是  pyisinteresting

    8.简单逆向

    附件

    用OD打开

    自动步入,就看到了;

    也可以直接搜索参考字符串“flag”

    9.心急吃不了热豆腐

    附件

    F12 直接找js文件;

    发现里面有一个控制时间的变量,有个输出被注释掉了,把注释去掉,时间改小,再开html如图

     

    10.不存在的

    附件

    UE打开搜flag,嘻嘻。

    安装apk??不存在的

  • 相关阅读:
    开源天气预报api整理
    Android gradle 相关配置
    Android Base64转图片
    【转】数据加密算法详解
    【转】零基础学习Fiddler抓包改包
    【转】你所不知道的Android Studio调试技巧
    【转】Android Studio-1.2版本设置教程
    Android app应用多语言切换功能实现
    Android通用流行框架大全
    38个学习新技能的最佳网站
  • 原文地址:https://www.cnblogs.com/jinmingyi/p/6944743.html
Copyright © 2020-2023  润新知