新手区题解(这真的是新手区吗)

this_is_flag

  • flag就在题目描述里面flag{th1s_!s_a_d4m0_4la9}

pdf

  • 附件是pdf,flag就在图片下面,把图片移开或者把文件转换为.txt,就可以看到了flag{security_through_obscurity}

如来十三掌

  • 打开附件是一串佛语夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮,与佛论禅解密MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9,题目是十三掌,在用ROT13解密,得到ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9,最后Base64解密得到flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

give_you_flag

  • 附件是一张.gif动图,在Namo Gif里面打开逐帧查看,在第50帧发现二维码,提取出来,但是这张二维码缺少三个定位点,补齐后CQR扫描,得到flag{e7d478cf6b915f50ab1277f78502a2c5}

坚持60s

  • 打开是一个java小游戏,用java反编译工具打开,搜索flag得到flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}

  • base64解密得到DajiDali_JinwanChiji

  • kali

gif

  • 附件是一堆黑白图片,无规律只有黑白两种情况,猜测是摩斯密码或者二进制,二进制是八位一组排列,摩斯密码每一组无规律,所以是二进制,白色图片是0,黑色图片是1,得到01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101

  • 二进制转字符串flag{FuN_giF}

stegano

  • 打开pdf,ctrl+a全选,复制粘贴到新文本中,发现字符串,BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB,或者用火狐浏览器打开刚才下载的pdf文件

    按下F12进入控制台,输入document.documentElement.textContent,都能找到。只有AB两种情况且每一组位数不一样,猜测是摩斯密码

  • 在文本中将A替换为.,B替换为-,得到-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--,摩斯密码解密CONGRATULATIONS,FLAG:1NV151BL3M3554G3

掀桌子

  • c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,16进制转十进制,得到200 233 172 160 198 242 229 243 232 196 239 231 161 160 212 232 229 160 230 236 225 231 160 233 243 186 160 232 234 250 227 249 228 234 250 226 234 228 227 234 235 250 235 227 245 231 233 243 228 227 232 234 249 234 243 226 228 230 242,每个数减去128,转换为字符The flag is: hjzcydjzbjdcjkzkcugisdchjyjsbdfr

ext3

  • 附件放到winhex中,发现路径~root/Desktop/file/O7avZhikgKgbF/flag.txt,用7-zip解压,然后顺着路径找到ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=,解码得到flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

base64stego

  • 得到附件放到winhex里面,发现是伪加密,修改09 00为00 00,解压得到大量的base64,解密得到的是隐写简介,真正的flag隐藏在了base64明文中

  • 明文转换为二进制的时候不一定是八的倍数,需要丢弃多余的0,剩下的八位一组转换为密文

  • 这些0是编码的时候为了使字节是六的倍数补上去的,并不会影响密文,如果将这些0换成其他二进制数,只会影响明文,并不影响解码结果

  • 那么一句base64就可以隐藏最多四个字节,每句话隐藏几个字节就可以把密文隐藏在base64里面,而且正常解码的时候会丢弃这些字节,从而隐藏明文,但是这样的结果导致base64编码非常的长

  • 加密代码

转载自:https://www.tr0y.wang/2017/06/14/Base64steg/
import base64
flag = 'Tr0y{Base64isF4n}' #flag
bin_str = ''.join([bin(ord(c)).replace('0b', '').zfill(8) for c in flag])
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('0.txt', 'rb') as f0, open('1.txt', 'wb') as f1: #'0.txt'是明文, '1.txt'用于存放隐写后的 base64
    for line in f0.readlines():
        rowstr = base64.b64encode(line.replace('\n', ''))
        equalnum = rowstr.count('=')
        if equalnum and len(bin_str):
            offset = int('0b'+bin_str[:equalnum * 2], 2)
            char = rowstr[len(rowstr) - equalnum - 1]
            rowstr = rowstr.replace(char, base64chars[base64chars.index(char) + offset])
            bin_str = bin_str[equalnum*2:]
        f1.write(rowstr + '\n')
  • 解密代码

import base64
 
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:   #stego.txt 为在base64密文中加密后的密文
    flag = ''
    bin_str = ''
    for line in f.readlines():
        stegb64 = str(line, "utf-8").strip("\n")
        rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
        offset = abs(b64chars.index(stegb64.replace('=', '')[-1]) - b64chars.index(rowb64.replace('=', '')[-1]))
        equalnum = stegb64.count('=')  # no equalnum no offset
        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)
for i in range(0, len(bin_str), 8):
    print(chr(int(bin_str[i:i + 8], 2)),end='')
  • 运行结果flag{Base_sixty_four_point_five}

SimpleRAR

  • 将附件用winrar解压,会提示错误,用7-zip解压,得到flag.txt,里面是flag is not here,回看winrar报错,! C:\Users\boluo\Desktop\18c5326aada0499eafbe03ad8a52e40c.rar: 文件头已损坏: secret.png

  • secret.png文件头损坏,用winhex打开修复

  • 标记块:HEAD_TYPE=0x72
    压缩文件头:HEAD_TYPE=0x73
    文件头:HEAD_TYPE=0x74
    旧风格的注释头:HEAD_TYPE=0x75
    旧风格的用户身份信息:HEAD_TYPE=0x76
    旧风格的子块:HEAD_TYPE=0x77
    旧风格的恢复记录:HEAD_TYPE=0X78
    旧风格的用户身份信息:HEAD_TYPE=0X79
    子块:HEAD_TYPE=0x7A
    最后的结束块:HEAD_TYPE=0x7B

  • D5 56 :HEAD_CRC,2字节,也就是文件头部分的crc校验值
    74 :HEAD_TYPE,1字节,块类型,74表示块类型是文件头
    20 90 :HEAD_FLAGS,2字节,位标记,这块在资料上没找到对应的数值,不知道20 90代表什么意思(如果有师傅知道,可以告诉我呀)
    2D 00 :HEAD_SIZE,2字节,文件头的全部大小(包含文件名和注释)
    00 10 00 00 :PACK_SIZE,4字节,已压缩文件大小
    00 10 00 00 :UNP_SIZE,4字节,未压缩文件大小
    02:HOST_OS,1字节,保存压缩文件使用的操作系统,02代表windows
    C7 88 67 36:FILE_CRC,4字节,文件的CRC值
    6D BB 4E 4B :FTIME,4字节,MS DOS 标准格式的日期和时间
    1D:UNP_VER,1字节,解压文件所需要的最低RAR版本
    30:METHOD,1字节,压缩方式,这里是存储压缩
    08 00 :NAME_SIZE,2字节,表示文件名大小,这里文件名大小是8字节(flag.txt)
    20 00 00 00 :ATTR,4字节,表示文件属性这里是txt文件
    66 6C 61 67 2E 74 78 74:FILE_NAME(文件名) ,NAME_SIZE字节大小,这里NAME_SIZE大小为8
    再往后是txt文件内容,一直到第六行 65 结束,下面是另一个文件块的开始

  • 所以.rar文件文件头应该是74,修改7A 20 90为74 20 90,可以成功解压,得到一张.png图片,放到StegSolve里面,查看图片通道,在Red plane 0发现下半张二维码

  • 放到winhex里面发现其实是.gif动图,修改后缀,放到Namo Gif里面,逐帧查看,第二帧可以看到模糊的二维码,把两帧保存下来放到StegSolve里面,查看第二帧,在第二帧Red plane 0发现上半张二维码,提取出来拼接,CQR扫码得到flag{yanji4n_bu_we1shi}

进阶


功夫再高也怕菜刀

  • 用wireshark打开,字符串查找flag,然后追踪Tcp流,在eq 9里面找到flag.txt,后面有well,you need passwd!,猜测在压缩包里面,需要密码

  • kali分离文件,用foremost或者binwalk,分离出来一个.zip文件,压缩包是加密的

  • 继续查找flag,发现6666.jpg,追踪tcp流,在eq 7里面发现一串字符串,起始是FFD8FFE0

  • 这是.jpg文件头,最后面是FFD9,是.jpg的文件尾

  • 常用文件的文件头如下(16进制):

    JPEG (jpg),文件头:FFD8FFE0或FFD8FFE1或FFD8FFE8

    GIF (gif),文件头:47 49 46 38PNG (png),文件头:89 50 4E 47

    TIFF (tif),文件头:49 49 2A 00

    Windows Bitmap (bmp),文件头:42 4D C0 01

    CAD (dwg),文件头:41 43 31 30

    Adobe Photoshop (psd),文件头:38 42 50 53

    Rich Text Format (rtf),文件头:7B 5C 72 74 66

    XML (xml),文件头:3C 3F 78 6D 6C

    HTML (html),文件头:68 74 6D 6C 3E

    Email [thorough only] (eml),文件头:44 65 6C 69 76 65 72 79 2D 64 61 74 65 3A

    Outlook Express (dbx),文件头:CF AD 12 FE C5 FD 74 6F

    Outlook (pst),文件头:21 42 44 4E

    MS Word/Excel (xls.or.doc),文件头:D0 CF 11 E0

    MS Access (mdb),文件头:53 74 61 6E 64 61 72 64 20 4A

    WordPerfect (wpd),文件头:FF 57 50 43

    Adobe Acrobat (pdf),文件头:25 50 44 46 2D 31 2E

    Quicken (qdf),文件头:AC 9E BD 8F

    Windows Password (pwl),文件头:E3 82 85 96

    ZIP Archive (zip),文件头:50 4B 03 04

    RAR Archive (rar),文件头:52 61 72 21

    Wave (wav),文件头:57 41 56 45

    AVI (avi),文件头:41 56 49 20

    Real Audio (ram),文件头:2E 72 61 FD

    Real Media (rm),文件头:2E 52 4D 46

    MPEG (mpg),文件头:00 00 01 BA

    MPEG (mpg),文件头:00 00 01 B3

    Quicktime (mov),文件头:6D 6F 6F 76

    Windows Media (asf),文件头:30 26 B2 75 8E 66 CF 11

    MIDI (mid),文件头:4D 54 68 64

    7z,文件头:37 7A BC AF 27 1C

  • 将这段复制下来,在winhex里面新建文件,粘贴为ASCII Hex格式,保存后缀为.jpg,打开图片上面是Th1s_1s_p4sswd_!!!

  • 解压打开flag.txt,得到flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

Banmabanma

  • 附件是.png图片,打开是一张斑马,上面很多黑白竖线,猜测是条形码,在线扫描得到FLAG IS TENSHINE

pure_color

  • 附件是.png图片,放到winhex里面发现里面没有隐藏信息,是一张正常图片,放到stegsolve中看看隐写,左右查看图片通道,在Blue plane 0里面发现隐藏了信息,flag{true_steganographers_doesnt_need_any_tools}

base64÷4

  • 题目给了一串字符串666C61677B45333342374644384133423834314341393639394544444241323442363041417D

  • 这不是base64,题目是base64÷4,64÷4=16,猜测是base16加密,base16就是十六进制,十六进制转字符串也可以,在线解密得到flag{E33B7FD8A3B841CA9699EDDBA24B60AA}

  • 或者直接magic直接出答案

Training-Stegano-1

  • 打开附件,描述说是最简单的隐写,用winhex打开发现Look what the hex-edit revealed: passwd:steganoI,用flag{}包裹提交不对,以为是什么密码,但是没有加密内容,描述说是最简单的,那这就是flag,直接提交

Test-flag-please-ignore

  • 附件打开解压,打开得到一个无后缀文件,用winhex打开,发现一串字符串666c61677b68656c6c6f5f776f726c647d,十六进制转文本或者magic,得到flag{hello_world}

  • 十六进制:0~f

can_has_stdio?

  • 解压附件,打开文件夹,得到无后缀文件,用记事本打开或者用winhex,发现奇怪字符

                                                                                  
                                                                                  
                                          +                                       
                                         ++                                       
                                         +++                                      
                                        ++[>                                      
                                        +>++>                                     
                                       +++>++                                     
                                       ++>++++                                    
                                      +>++++++                                    
                                      >+++++++>                                   
                                     ++++++++>+                                   
                                     ++++++++>++                                  
                                    ++++++++>+++                                  
                                    ++++++++>++++                                 
              ++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++            
                ++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>--.++<<              
                  <<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<                
                    >>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>-.+<                  
                      <<<<<<<<<<<<>>>>>>>>>>>>>>>+++.---<<<<<<                    
                        <<<<<<<<<>>>>>>>>>>>>>---.+++<<<<<<<                      
                          <<<<<<>>>>>>>>>>>>>>+++.---<<<<<                        
                            <<<<<<<<<>>>>>>>>>>>>>>-.+<<                          
                              <<<<<<<<<<<<>>>>>>>>>>>>                            
                              >>----.++++<<<<<<<<<<<<<                            
                              <>>>>>>>>>>>>+.-<<<<<<<<                            
                             <<<<>>>>>>>>>>>>>>--.++<<<                           
                             <<<<<<<<<<<>>>>>>>>>>>>>-.                           
                            +<<<<<<<<<<<<<>>>>>>>>>>>>>>                          
                            +++.---<<<<<<   <<<<<<<<>>>>                          
                           >>>>>>>>-.+<       <<<<<<<<<<<                         
                           >>>>>>>>>>           >>>--.++<                         
                          <<<<<<<<<               <<<>>>>>                        
                          >>>>>>                    >>>-.+                        
                         <<<<<                        <<<<<                       
                         <<<                            <>>                       
                        >>                                >>                      
                                                                                  
                                                                                  
                                                                                  
    >>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>+.-<<<<<<<<<<<<>>>>>>>>>>>>>>--.++<<<<<<<<<<<<<<>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<>>>>>>>>>>>>-.+<<<<<<<<<<<<>>>>>>>>>>>>>>.<<<<<<<<<<<<<<>>>>>>>>>>>>>>++.--<<<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>--.++<<<<<<<<<<<<<>>>>>>>>>>>>>+.-<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>---.+++<<<<<<<<<<<<<<<<.
  • 似曾相识的代码,没错这是一种语言

  • Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF。
    这就是一个语言,但它不像C++那么多元化,但难度也一定的增加,因为
    它只有8种关键字!
    虽然还有一些更特殊的语言,chicken只有一个关键字chicken。Whitespace由空格、Tab、回车组成,所以全是白的。

  • BF只有8种有效字符,其实就是8种指令:

字符

含义

>

指针加一

<

指针减一

+

指针指向的字节的值加一

-

指针指向的字节的值减一

.

输出指针指向的单元内容(ASCⅡ码)

,

输入内容到指针指向的单元(ASCⅡ码)

[

如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处

]

如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处

  • Brainfuck解码得到flag{esolangs_for_fun_and_profit}

János-the-Ripper

  • 解压附件,打开文件夹拿到无后缀文件,用winhex打开,发现是.zip文件,里面有flag.txt,修改后缀解压需要密码,猜测是伪加密,修改后并不是

  • John the ripper

    简介
    一款免费、开源的暴力密码破解器,它有多平台版本,支持目前大多数的加密算法,如DES、MD4、MD5等。该软件破解密码方式简单而粗暴,理论上只要时间上面允许,该软件可以破译绝大多数用户密码。John the Ripper免费的开源软件,支持目前大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。

  • 题目名称是暴力密码破解器,应该是让我们暴力破解,用ARCHPR暴力破解,得到密码fish,解压得到flag{ev3n::y0u::bru7us?!}

Aesop_secret

  • 解压附件打开,得到.gif动图,每一帧都不在同一个位置,要分解合成一张图片才能看到,内容是ISCC

  • 用winhex打开看看,在最下面发现U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5+xsDHONiR3t0+Oa8yG/tOKJMNUauedvMyN4v4QKiFunw==

  • 不是base64加密,是aes加密,密钥就是ISCC,解压两次得到,flag{DugUpADiamondADeepDarkMine}2

reverseMe

  • 打开附件是翻转过的图片,用画图工具打开,反转得到flag{4f7548f93c7bef1dc6a0542cf04e796e}

easycap

  • 附件是流量包,放到Wireshark里面,搜索不到隐藏信息,追踪tcp流,发现FLAG:385b87afc8671dee07550290d16a8071,不过没想到这样直接提交就是答案,还用flag{}包裹提交错误了