书山有路,学海无涯

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("\n\n"); } }

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

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

发现在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("\n\n");
    }
}

结果里有一个“aneasyquestion”

这就答案!

7.py交易

附件

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

在线反编译py

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

得到

答案就是  pyisinteresting

8.简单逆向

附件

用OD打开

自动步入,就看到了;

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

 

9.心急吃不了热豆腐

附件

F12 直接找js文件;

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

 

 

 

10.不存在的

附件

UE打开搜flag,嘻嘻。

安装apk??不存在的

posted @ 2017-06-05 14:21  Jimmy_King  阅读(742)  评论(0编辑  收藏  举报