zoukankan      html  css  js  c++  java
  • ctf题目writeup(9)

     继续刷题,找到一个 什么 蓝鲸安全的ctf平台

    地址:http://whalectf.xin/challenges

    (话说这些ctf平台长得好像)

    1.

    放到converter试一下:

    在用十六进制转的时候能输出url编码,再把url转换一下:(这里用converter的unescape就可以)

    这段,乍一看先懵一个base64吧。

    解密后是这样的,那就清楚了,这是ascii码。直接工具转,或者对着表很快。

    所以就是 key{welcometovenus}

    2.

    刚开始以为是栅栏密码,凯撒密码什么的。发现解开后没有啥东西。

    那就试试键盘:

    跟着感觉走,顺着这个键盘可以发现 B N C三个字符 一一对应上就行了

    key{BNCBNNBNB}

    3.

     下载解压后是一个pcapng的流量包,用wireshark打开:

    这个包还是有很多东西的。不过基本上都是上传图片啊什么东西。筛选出来http 发现最后上传了一个zip

    在这直接用wireshark导出文件保存为zip(右键 有个extract)解压后得到一个这玩意:

    不过我打开后都是空白的,以为这是不是传说中的doc什么的加密。出来后右键查看属性是有大小的,可能藏东西了,再看一眼详细信息:

    妙。

    key{23ac600a11eaffc8}

    5.

     这里数据包用wireshark打开会报错

    而且根据题目和实际,这是个wifi的数据包,有wpa加密的那种。。。

    这种题没接触过太多。。。(好像就一道)

    所以这时候需要kali下的 aircrack-ng 工具 用字典暴力破解密钥

    密码是 88888888.

    之后 根据 essid 和 密码 进行破解:

    essid可以直接用 aircrack-ng 命令查看

    之后的命令是:

    airdecap-ng shipin.cap -e 0719 -p 88888888

    这里会生成一个dec.cap:

    打开后找到说的视频网站:

    ctf{push.m.youku.com}

    6.

    解压后还是用wireshark打开:

    第一个直接右键 follow tcp streams:

    看意思这个密码好像是假的 这里看下二进制。

    7f是 del 就是删除的意思 这样就对上了 我们知道ctf中的flag 经常把字母变成数字

    这样就是 backd00Rmate 就很ctf

    flag{backd00Rmate}

    7.

    试了试栅栏和凯撒,都不太行。

    但是越看越觉得像是base64.。。于是把加号和减号删掉

    itislikevenusverymuch

    key{itislikevenusverymuch}

    8.

     

    一看就是jsfuck了。直接f12运行:

    这里%21是url编码,其实就是!

    所以key{itisjavascriptenjoy!}

    9.

    看到后面有一串,尝试用16进制转:

    这里看到 字符串是 alert|coolyougettheflag 然后结合这段代码。 split是以什么什么为分割,在这里就是 用| 来分割字符串,而后面的1 则是第几段。

    (从0开始) coolyougettheflag就是我们要的了

    所以:key{coolyougettheflag}

    10.

    打开后看:是一段base64

    解密后放到txt是这样的:

    嗯 你会发现 这其实看起来像一个二维码。。。。

    所以 得用脚本了。。这里用了大佬的脚本:

    # -*- coding: UTF-8 -*-
    # __Author__:pad0y
    from PIL import Image
    MAX = 256
    with open('flag.txt', 'r') as f:
        c = f.read()
        newIm = Image.new('RGB', (MAX, MAX))
        white = (255, 255, 255)
        black = (0, 0, 0)
        for x in range(0,MAX):
            for y in range(0, MAX):
                if c[MAX*x+y] == '1':
                    newIm.putpixel((x, y), black)
                else:
                    newIm.putpixel((x, y), white)
        newIm.save('flag.png')
    

      

    分析后得到:

    flag{QR_Code_666_!!_?}

    11.

    打开后还是jsfuck 直接f12运行:

    这是编码的问题,保存下来为unicode形式,然后用winhex这样的软件打开:

    所以:flag{? enusCtf}

    12.

    真没想到还有usb协议包。。。

    打开后一脸懵逼。

    然后逼急了直接notepad++打开,find Pwn:

    Pwnium{408158c115a82175de37e8b3299d1f93}

    13.

    打开后还是流量包分析。可以在最后几次看到有 tar.gz的字样

    一般这种题都是筛选http的 而且一般要找的东西 你看它的长度肯定不能是两三百以下的。 就从这里头慢慢细心的找。

    所以我们就得从这段的tcp流里面提取出一段tar.gz

    tar.gz的文件头是 1f 8b 

    用hex模式查看然后寻找1f:

    把这段复制下来,到winhex里面,用hex方式导入,然后另存为.tar.gz的格式:

    打开后就有flag了:

    ISG{China_Ch0pper_Is_A_Slick_Little_Webshe11}

    14.

    这两道题都是分析文件中的sql注入语句,然后根据字符来确定flag的值。

    这里转载大佬的文章,很详细:

    https://blog.csdn.net/qq_34356800/article/details/83895210

    15.

    百度了一下 这是 传说中的夏多密码:

     具体的解密:

    https://www.33iq.com/group/topic/242254/

    16.

    打开图片,文本形式搜flag无果,详细信息没有。。。

    用神器stegsolve看一下:

    识别一下:

    17.

    图片用notepad++打开,最后发现flag.txt

    试试直接改后缀变成zip,还真行,解压得到flag.txt:

    flag{WelcomeT3WhaleCTF}

    18.

    这个直接用神器 stegsolve 逐帧分析 发现隐藏一个:

    flag{youfindmeWHALE}

    19.

    直接详细信息:

    flag{firsttry}

    20.

    还是用 stegsolve 逐帧分析:

    GUETCTF{Y0u_sEE_m3}

    21.

    用stegsolve看,看详细信息,找flag无果。

    用winhex打开:

    兔子的脚下果然有东西,一段unicode编码,解出来:

    flag{pE3kQzmaMN}

    22.

    点进去是个黑色的图片(加载不出来)

    可以复制这个图片的链接到迅雷,直接就可以下载了。

    (挺大哟,有7mb多。)

    然后详细信息,stegsolve,文本搜索巴拉巴拉没有啥东西。

    拖进winhex慢慢研究。

    关于ihdr,涉及到最多的就是宽和高的问题。

    这个图原图宽比高大出一倍多。是33多少来着。(我改完忘了。。。懒得重下一遍)

    熟悉ihdr文件格式的可以直接去找,不熟悉的可以搜图片详细信息的高度宽度来定位。

    在这里我把高度调整的很高,最终还是如我所愿。

    FLAG{ihDR_ALSO_FUN}

    23.

    丢进stegsolve中发现了这个:

    识别一下看看:

    还以为有啥别的坑。。没想到直接出来了:

    flag{AppLeU0}

    24.

    25.

    打开后你会发现 末尾:

    其实打开前就知道了这道题是需要修补文件头的,反正我电脑显示不出来图像。直接补全:

    修改前:

    修改后:

    然后gif就能正常动了。

    是里面的灰色那部分,总共4帧有关的吧,应该是base64编码,用stegsolve逐帧拿出来:

    Y2F0Y2hfdGh1X2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU= 

    base64解码:

    catch_thu_dynamic_flag_is_qumte_simple

    要注意这里有坑。。。单词要正确

    得改成:

    key{catch_the_dynamic_flag_is_quite_simple}

    26.

    打开后老三样往上盘她。。。

    发现没啥东西。

    丢进linxu binwalk一下:

    这里 的 15AFFB 丢进winhex是这样的:

    看到后先把二进制转到16进制:

    发现不对劲了。因为你转到16之后,就没可能再转了(157位 谁的倍数也不是)

    那就看看01.。。。。又想起了上午那个 二维码 25的平方是625??

    代码:(就是那道题改一下max)

    # -*- coding: UTF-8 -*-
    # __Author__:pad0y
    from PIL import Image
    MAX = 25
    with open('flag.txt', 'r') as f:
        c = f.read()
        newIm = Image.new('RGB', (MAX, MAX))
        white = (255, 255, 255)
        black = (0, 0, 0)
        for x in range(0,MAX):
            for y in range(0, MAX):
                if c[MAX*x+y] == '1':
                    newIm.putpixel((x, y), black)
                else:
                    newIm.putpixel((x, y), white)
        newIm.save('flag.png')
    

      

    二维码小的可怜识别一下:

     SCTF{(121.518549,25.040854)}

    27.

    这道题涉及到的就是最低位这个东西。。。

    最低位莫过于 0和1 自然而然就想到二维码。。。

    原图在stegsolve下有隐写二维码但是只有一点。

    bmp属于比较高位的,这道题以前有类似的,大概就是 用画图打开,然后另存为 png格式

    然后再用stegsolve打开:

    flag{i love u}

    28.

    图片拿过来老三样。。。啥都没有鸭。

    然后用binwalk发现两个png:

    一个大,一个小,不用说,大的肯定隐藏东西了。

    用stegsolve打开大的文件,然后选择 image combiner 选择小文件:

    sub(就是减的意思)

    多了一条小红线。

    所以我们去大文件的red0 看一看:

    ISG{E4sY_StEg4n0gR4pHy}

    搞定。

    今天到这里。

  • 相关阅读:
    报错Required String parameter 'customerInfo' is not present的原因及处理办法
    Mybatis 中$与#的区别
    ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
    Git使用
    前后端分离
    对excel文件的读取
    POI导入和导出Excel总结
    git权限
    @RequestParam与@PathVariable
    lombok学习
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10366969.html
Copyright © 2011-2022 走看看