用户
搜索
  • TA的每日心情
    奋斗
    2019-5-1 00:25
  • 签到天数: 253 天

    连续签到: 1 天

    [LV.8]以坛为家I

    管理员

    Supreme玩家

    Rank: 9Rank: 9Rank: 9

    73

    主题

    2273

    帖子

    4万

    魔法币
    收听
    0
    粉丝
    175
    注册时间
    2016-2-5

    楚核心白帽i春秋签约作者白帽传说春秋游侠秦燕魏赵齐突出贡献

    发表于 2017-8-16 15:46:44 139314
    第三期解题赛也圆满结束

    不过,这一次,很多人的吐槽都是难

    想揍出题人

    作为第一题的出题人,我只想说:

    孤独求败

    QQ截图20170816135717.jpg

    下载次数200了,都没人解开

    想送门票也送不出去

    记住我们解题赛的口号:

    玩玩脑洞,烧烧脑袋,让愉快的心情糟糕起来!

    亚历山大·霸总说过:

    QQ图片20170815170111.png

    第三期脑暴解题赛链接:

    接下来,咱们开始正题



    第一题

    出题人:阿甫哥哥(霸总)

    一血获得者:无

    Writeup编写者:阿甫哥哥(霸总)

    writeup如下:

    下载文件,看介绍是要爆破的,上神器ARCHPR
    爆破得到密码0012,解压
    发现
    第一题41.png
    目测base64,解码得到double500
    在查看图片像素500*420
    第一题81.png
    于是想到了图片应该是一个正方形的才对
    上神器winhex,png图片第二行前八位是决定图片大小的,又因为是正方形,所以长=宽,于是想到将A4改为F4,不懂的可以看https://my.oschina.net/ososchina/blog/801358
    第一题209.png
    于是打开了完整的图片,莫莫的头像@小莫ss ,低调
    第一题230.png
    打开7z压缩包,发现损坏了,继续神器
    第一题251.png
    发现是zip的文件头标志,于是想的改成zip,不成功
    之后讲文件头改成了7z的文件头
    第一题295.png
    完美解决,输入密码,进入下一步
    打开txt
    第一题318.png
    Unicode解码,然后rot13,然后base64
    第一题348.png
    发现还有加密,M开头,想到uuencode
    解码得到
    90M0Mo90M0Mo90
    168M0Mo168M0Mo168
    158M0Mo158M0Mo158
    替换那段密文
    第一题435.png
    发现好多MOMO,这么长,于是想到了RGB值,上python
    46440行,分解质因数,
    第一题482.png
    合并一下
    长216,宽215
    继续Python大法
    [AppleScript] 纯文本查看 复制代码
    #-*- coding:utf-8 -*-
    from PIL import Image
    import re
    x = 216
    y = 215
    image = Image.new("RGB",(x,y))
    f = open('ctf.txt') 
    for i in range(0,x):
        for j in range(0,y):
            l = f.readline()
            r = l.split("M0Mo")
            image.putpixel((i,j),(int(r[0]),int(r[1]),int(r[2])))
    image.save('image.jpg')
    第一题819.png
    反色
    第一题824.png
    扫码得到
    }ssedd0G yM si 0M0M{ftci
    继续python
    第一题865.png
    完美结束,最后来个莫莫哒@小莫ss
    第二题
    出题人:米斯特创始人保洁小弟弟
    一血获得者:Key
    writeup编写者:Key
    writeup如下:
    打开压缩包,尝试解密后无果。作者没有提供压缩包密码格式,怀疑是伪加密。用hex编辑器分析压缩包的头。
    flag53.png
    发现此处为伪加密,将09改为00.
    然后解压文件,发现解压失败
    根据题目名称“40不是14”,用hex编辑器打开,发现这个压缩包跟往常压缩包的头不一样。
    flag148.png
    解出这张图片,jpg常用套路就是将文件备注(我老大就是出题人,我问他的...)

    flag230.png
    发现一串十六进制编码,用老大写的国内首个CTF工具框架CTFCrackTools可以瞬间解开。
    base16+base32加密
    flag346.png
    进而用凯撒解密解出属于我们米斯特独有的FlagMSTSEC{MST_SEC_TEAM_DINGANN}
    flag348.png
    第三题
    出题人:黑色镰刀
    一血获得者:shier

    writeup如下:

    首先下载flag.rar文件包。

       第三题110.png

    下载了之后,直接解压:

    第三题124.png

    得到这么个文件。没后缀没啥的,我们用notepad++打开之。

    第三题158.png

    什么鬼,一串------一些url编码,看不懂,到了这里,就基本上进行不下去了,按照套路,准备放弃这题,进行下一题了。
    然而其他题目也看不懂,F*k。这时我们该怎么办呢,首先分析一下,%40什么的是url编码,那我们解一下呗,虽然不知道解了能有什么信息,但是我们得学会尝试。试错。url解密网址:http://www.convertstring.com/zh_CN/EncodeDecode/UrlDecode

    第三题442.png

    第三题444.png

    %3d=”=”
    %40=”@”
    还有其他的,我就不截图了,解得之后,相应替换一下。
    第三题488.png
    全部替换完之后就是这么个样子
    第三题506.png
    什么鬼还是看不懂。。。
    这时我们可以放弃了。。。。。。。。
    哈哈!这怎么行。当我鼠标放在
    第三题558.png
    将要关闭的时候,notepad是会有代码缩略图的,我这里没截到。当然用sublime TEXT编辑器或者vc code,或者atom,在编辑器的右上方也会有缩略图。他么的,这就是个二维码 啊。。
    第三题658.png
    为了方便,可以把”-”替换成空格
    第三题679.png
    是不是更清楚???
    但是这个二维码是缺少定位点的,我们去网上找个定位点
    第三题717.png
    放在上面图片的三个角,就像这样子
    第三题736.png


    OK手机扫一下得到flag。。。

    第四题

    出题人:丞相

    一血获得者:无

    witeup编写者:丞相

    writeup如下:

    将压缩文件名和里面三个文件的名称拼凑称32位md5(自己排顺序),解开得出root,即压缩包密码,把解开的图片改后缀位txt,尾部有一串密文,解密开始!
    第一步
    \u3434\u3254\u3563\u4634\u3562\u7A53\u3562\u4631\u3563
    \u4635\u3562\u7632\u3556\u4A75\u3434\u3278\u3437\u4639

    删掉\u的到343432543563463435627A53356246313563
    46353562763235564A753434327834374639,添加百分号得到

    %34%34%32%54%35%63%46%34%35%62%7A%53%35%62%46%31%35%63%46%35%35%62%76%32%35%56%4A%75%34%34%32%78%34%37%46%39
    URL转码得442T5cF45bzS5bF15cF55bv25VJu442x47F9
    转一次rot13得442G5pS45omF5oS15pS55oi25IWh442k47S9
    进行UTF16的base64解码,得到3Fe8bEa5e9b6Aa3d==
    结果为伪装的base64,删掉等号得到3fe8bea5e9b6aa3d,这个不是md5值,是删掉%的URL编码
    添加百分号得%3f%e8%be%a5%e9%b6%aa%3d
    转码得【?辥鶪=】(用括号方便理解),?辥鶪=不是乱码,就是正确答案哦。

    第五题(压轴题)
    出题人:本间芽衣子
    一血获得者:无
    writeup编写者:本间芽衣子
    夏洛特将幽灵的声音录制了下来,作为一个专业的检察官与侦探,同时从各种恐怖片和科教频道(雾)上积累的对奇怪声音的分析经验,他很快意识到,直接解读声音数据是不实际的,他打开了自己随时携带的小电脑,并点开了GoldWav这款软件
    幽灵的声音wp121.png
    点击确定后,声音被加载进来,同时,选择查看声音的频谱
    幽灵的声音wp150.png
    点击播放按钮,很快,声音频谱结果显示出来了
    幽灵的声音wp174.png
    好奇怪,为什么这个声音为什么只有6个频率,而且分别对应在1KHZ 2KHZ 3KHZ…6KHZ上面呢,夏洛特感觉到疑惑,但很快,它意识到这不就是对应门上的6位密码么,那么,这些频谱数据要如何才能转变为密码呢?
    夏洛特想起了之前的字条,第一位密码是9,那么,1KHZ频率的波形对应波幅是否就是量化为9,其它频率的就是按照这个比例进行缩放呢。
    夏洛特意识到,Goldwave的局限性(因为goldwave的FFT size默认为512,频谱并不完全准确),作为一个专业的检察官和侦探,敲点代码还是会的,夏洛特决定使用数学工具来取得相关频率的波形更为准确的数据,没错,就使用三角函数的相关性来进行检波。
    打开Visual Stdio,创建一个C++项目,代码如下:
    [C++] 纯文本查看 复制代码
    #include <stdio.h>
    #include <malloc.h>
    #include <math.h>
    
    typedef struct _WaveHeader  
    {  
            unsigned char riff[4];                                //data exchange flag
            unsigned int size;                                        //filesize-header 
            unsigned char wave_flag[4];                        //wave 
            unsigned char fmt[4];                                //fmt
            unsigned int fmt_len;                                //16
            unsigned short tag;                                        //format
            unsigned short channels;                        //
            unsigned int samp_freq;                                //sample rate
            unsigned int byte_rate;                                //samplerate*bytes of per sample
            unsigned short block_align;                        //channles * bit_samp / 8  
            unsigned short bit_samp;                        //bits per sample
    }WaveHeader;  
    
    typedef struct _WaveDataHeader
    {
            unsigned char data[4];
            unsigned int size;
    }WaveDataHeader;
    
    
    #define PCM_DATA_LEN 44100
    #define PCM_PI 3.14159265
    
    int main()
    {
            FILE *pf;
            WaveHeader header;
            WaveDataHeader dataheader;
            short PCMData[PCM_DATA_LEN];//16 seconds
            double KHZ[6]={0,0,0,0,0,0};
            double Passwords[6]={9.0,0,0,0,0,0};
            double scale;
            int i;
    
            pf=fopen("ghost.wav","rb");
            fseek(pf,sizeof(WaveHeader)+sizeof(WaveDataHeader),SEEK_SET);//跳过WAV的头部,直接读取Data(分析头部可知WAV文件为单声道)
            fread(PCMData,2,PCM_DATA_LEN,pf);//读取波形数据,因为从头部可知采样频率为44100,从GoldWav得知存在1KHZ 2KHZ 3KHZ...6KHZ的频率数据
            fclose(pf);
    
            for (i=0;i<44100;i++)
            {
                    KHZ[0]+=sin((1000*2*PCM_PI*i)/44100)*PCMData[i];//1KHZ波形相关运算
                    KHZ[1]+=sin((2000*2*PCM_PI*i)/44100)*PCMData[i];//2KHZ波形相关运算
                    KHZ[2]+=sin((3000*2*PCM_PI*i)/44100)*PCMData[i];//3KHZ波形相关运算
                    KHZ[3]+=sin((4000*2*PCM_PI*i)/44100)*PCMData[i];//4KHZ波形相关运算
                    KHZ[4]+=sin((5000*2*PCM_PI*i)/44100)*PCMData[i];//5KHZ波形相关运算
                    KHZ[5]+=sin((6000*2*PCM_PI*i)/44100)*PCMData[i];//6KHZ波形相关运算
            }
            //因为从题目中我们知道,第一个密码是9,那么就有理由相信,我们将1KHZ频率的波幅量化为9
            //那么,其它频率的波幅所对应的值就是按比例计算了
            scale=KHZ[0]/9;
            for (i=1;i<6;i++)
            {
                    Passwords[i]=KHZ[i]/scale;
            }
            //因为存在精度误差,对结果取近似整数,不过到这一步基本可以直接看出答案了
            for (i=0;i<6;i++)
            {
                    printf("%d",(int)(Passwords[i]+0.01));
            }
            
            getchar();
    }
    编译运行,结果出来了
    幽灵的声音wp2367.png


    那么,这是不是大门的密码呢,夏洛特蹑手蹑脚的把密码输入到大门那古老的锁上,随着一声咔嚓咔嚓的齿轮转动声音,门吱~~呀一声慢慢打开了,尽管是盛夏,门内传来的一股寒气伴随着水珠凝结的雾气,呼啸一声打在了夏洛特的脸上,夏洛特不紧打了个寒颤,奇怪的声音仿佛消失了,房间内基本漆黑一片,破败的房顶隐隐约约漏下了最后一抹残阳的余光。
    看气氛真是有够恐怖的,但夏洛特是一位专业的检查官和侦探,自然不会被恐怖那么轻易的打败,他抖擞了精神,裹紧了大衣,从大门进入了古宅…….

    下期精彩预告:
    时间:
    下周二下午某一时间
    奖品:
    T恤+奖金增加到50RMB一题
    QQ图片20170816151648.jpg
    QQ图片20170816151654.png


    全剧终

    一位特爱收藏Supreme的大哥哥....
    发表于 2017-8-16 15:59:28
    我的题里,那张图片是莫莫,莫莫哒@小莫ss
    一位特爱收藏Supreme的大哥哥....
    使用道具 举报 回复
    发表于 2017-8-16 16:01:06
    麻溜了。
    使用道具 举报 回复
    给个解释吧,第二题昨天我提交了正确答案,加格式和不加格式的,各种组合的都试了,然而并没有弹口令?
    如图:
    S70816-160020.jpg

    评分

    参与人数 1魔法币 +300 收起 理由
    坏蛋 + 300 补偿

    查看全部评分

    使用道具 举报 回复
    坏蛋 管理员 欢迎大家来春秋群找我玩
    4#
    发表于 2017-8-16 16:10:24
    吃虾群众 发表于 2017-8-16 16:04
    给个解释吧,第二题昨天我提交了正确答案,加格式和不加格式的,各种组合的都试了,然而并没有弹口令?
    如 ...

    因为答案太长了,导致公众号出了点问题,下次注意啊,这次是出题人的锅,哈哈
    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    yyyxy 发表于 2017-8-16 16:10
    因为答案太长了,导致公众号出了点问题,下次注意啊,这次是出题人的锅,哈哈 ...

    昨天本来想的是做出一道题就狠心去买内存条,结果省下了钱包。。
    使用道具 举报 回复
    发表于 2017-8-16 16:22:41
    吃虾群众 发表于 2017-8-16 16:15
    昨天本来想的是做出一道题就狠心去买内存条,结果省下了钱包。。

    下周二还有,没事
    一位特爱收藏Supreme的大哥哥....
    使用道具 举报 回复
    坏蛋 管理员 欢迎大家来春秋群找我玩
    7#
    发表于 2017-8-16 16:52:32
    吃虾群众 发表于 2017-8-16 16:15
    昨天本来想的是做出一道题就狠心去买内存条,结果省下了钱包。。

    哈哈哈,下期的题目提高奖金,并且降低难度,一定要来哦
    欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!
    投稿请加QQ:780876774。

    i春秋—楚:713729706
    i春秋—魏:687133802
    网安交流群:820783253
    使用道具 举报 回复
    发表于 2017-8-17 14:19:49
    基本看不懂
    使用道具 举报 回复
    发表于 2017-8-17 16:06:35
    第四题里的
    进行UTF16的base64解码,得到3Fe8bEa5e9b6Aa3d==这一步
    请问有什么工具或者网站推荐吗


    没看到的世界,不代表不存在。
    使用道具 举报 回复
    发表于 2017-8-17 16:26:01
    希望writeup能讲的清楚一点,有些地方不要让我们猜,毕竟看writeup是想让自己能更明白不是看的迷糊
    。说话可能有不周的地方,但是是这个理。

    评分

    参与人数 1魔法币 +10 收起 理由
    Exp1ore + 10 哪不清楚

    查看全部评分

    使用道具 举报 回复
    发表于 2017-8-17 20:59:54
    ggb2312 发表于 2017-8-17 16:26
    希望writeup能讲的清楚一点,有些地方不要让我们猜,毕竟看writeup是想让自己能更明白不是看的迷糊
    。说话 ...

    是这个理儿,我写的时候也是尽量往入门的学生方面靠。写的不明白的地方还望指出
    使用道具 举报 回复
    发表于 2017-8-18 02:06:24
    好贴66666666666666666666666
    使用道具 举报 回复
    发表于 2017-8-20 07:56:55
    学习了学习,思路很活
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册