buuctf-misc2


misc

[MRCTF2020]你能看懂音符吗


下载附件

010查看文件

发现文件头位置反了

保存打开

查看docx文件

音符加密

在线音符解密

最后flag为flag{thEse_n0tes_ArE_am@zing~}

我吃三明治


下载附件

010查看文件

发现base编码
base解密

最后flag为flag{6f1797d4080b29b64da5897780463e30}

[SWPU2019]你有没有好好看网课?


下载附件

flag3压缩包

爆破密码

解压压缩包

flag.docx

图片没什么异常,提示是5.207.11
根据提示在影流之主.mp4的第5.66s发现提示

使用Kinovea打开影流之主.mp4

敲击码
….. ../… ./… ./… ../

….. ../… ./… ./… ../
5,2 3,1 3,1 3,2
W L L M

在第7.36s发现第二段信息:dXBfdXBfdXA=

base64解密

将两部分联合起来得到(敲击码得到的内容小写)
wllmup_up_up

解压压缩包flag2

010查看文件

最后flag为flag{A2e_Y0u_Ok?}

[ACTF新生赛2020]NTFS数据流


下载附件

根据题目提示 ntfs隐写

最后flag为flag{AAAds_nntfs_ffunn?}

sqltes


下载附件

http追流

SQL注入攻击语句
所有HTTP所有的请求进行导出为CSV文件

判断字段内容即可,因为hacker使用的SQL布尔盲注,我们只需解出ASCII即可
102 108 97 103 123 52 55 101 100 98 56 51 48 48 101 100 53 102 57 98 50 56 102 99 53 52 98 48 100 48 57 101 99 100 101 102 55 125

最后flag为flag{47edb8300ed5f9b28fc54b0d09ecdef7}

john-in-the-middle


下载附件

直接一把梭

使用stegslove打开png`,在很多通道都发现了一条线


然后发现;另一个png图片中貌似有条缺口 将两张图片使用stegslove进行Image Combiner`进行对比


调整到SUB时发现flag
最后flag为flag{J0hn_th3_Sn1ff3r}

[UTCTF2020]docx


下载附件

改为zip格式

最后flag为flag{unz1p_3v3ryth1ng}

[ACTF新生赛2020]swp


下载附件

一把梭

伪加密

解压压缩包

查看文件

最后flag为flag{c5558bcf-26da-4f8b-b181-b61f3850b9e5}

[GXYCTF2019]SXMgdGhpcyBiYXNlPw==


下载附件

base隐写

最后flag为flag{fazhazhenhaoting}

间谍启示录


下载附件

foremost一把梭

解压,运行flag.exe生成隐藏文件,开启查看隐藏项目

最后flag为flag{379:7b758:g7dfe7f19:9464f:4g9231}

喵喵喵


下载附件

stegslove打开,发现RGB0通道存在异常,LSB隐写发现png

保存为test.png,无法正常显示的,因为文件头前面多了些东西导致无法识别为PNF,另存从PNG文件头开始到IEND结束的数据即可

存得到半张二维码,用010 Editor打开出现CRC不匹配,明显修改了宽高

扫描二维码

访问网盘地址

下载文件

ntfs隐写

在线反编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7

import base64

def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))

return ciphertext[::-1]

ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']

解密
exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#Author: mochu7
def decode(arg1):
ciphertext = arg1[::-1]
flag = ''
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s = s ^ i
flag += chr(s)
print(flag)

if __name__ == '__main__':
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
decode(ciphertext)

运行得到

最后flag为flag{Y@e_Cl3veR_C1Ever!}

小易的U盘


下载附件
下载下来是iso文件,但是文件头是Rar文件,修改后缀为rar,解压

autorun.inf

使用IDA打开autoflag - 副本 (32).exe,直接搜索flag

最后flag为flag{29a0vkrlek3eu10ue89yug9y4r0wdu10}

[WUSTCTF2020]爬


下载附件

下载文件后,是一个爬的文件且没有后缀名,010打开后发现是pdf格式

修改文件后缀名为pdf后打开

把大的图片往下拉就能看到黑色的图片了,内容应该是16进制,转换一下

提取0x77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d

去掉0x。赛博厨子一把梭

最后flag为flag{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}

[RoarCTF2019]黄金6年


下载附件

pr分帧



最后一张在活着的封面(在这本书刚出来的前面几帧),但是要改一下曝光度

扫描二维码拼接为最终密码是iwantplayctf
010查看文件

赛博厨子一把梭

保存为rar文件

最后flag为flag{CTF-from-RuMen-to-RuYuan}

[WUSTCTF2020]alison_likes_jojo


下载附件

继续打开名为alison_likes_jojo.zip的压缩包,发现里面是两张jpg图片:

010Editor看看,发现boki.jpg文件尾有冗余信息,还有PK头,说明是个zip压缩包

foremost一把梭

解压压缩包发现有密码

爆破密码

解压压缩包

base解密

outguess隐写

最后flag为flag{pretty_girl_alison_likes_jojo}

[安洵杯 2019]吹着贝斯扫二维码


下载附件

这些没有后缀的文件使用010 Editor打开一看全是jpg文件

使用python脚本批量修改这些文件后缀为.jpg

查看文件

拼接二维码,用Ps

扫描二维码

再看flag.zip

赛博厨子一把梭

解压压缩包

最后flag为flag{Qr_Is_MeAn1nGfuL}

弱口令


下载附件

在压缩包的注释中发现了一些信息

submit查看

摩斯密码,空格替换为.Tab替换为-

…. . .-.. .-.. —– ..-. — .-. ..- –

摩斯解密

解压压缩包

lsb隐写

最后flag为flag{jsy09-wytg5-wius8}

从娃娃抓起


下载附件

中文电码
五笔

md5加密

最后flag为flag{3b4b5dccd2c008fe7e2664bd1bc19292}

Mysterious


下载附件

ida载入
Shift+F12查看字符

Functions Window找到这个地址,点击,F5反汇编查看伪C代码

源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4)
{
char v5; // [esp+50h] [ebp-310h]
CHAR Text[4]; // [esp+154h] [ebp-20Ch]
char v7; // [esp+159h] [ebp-207h]
__int16 v8; // [esp+255h] [ebp-10Bh]
char v9; // [esp+257h] [ebp-109h]
int v10; // [esp+258h] [ebp-108h]
CHAR String; // [esp+25Ch] [ebp-104h]
char v12; // [esp+25Fh] [ebp-101h]
char v13; // [esp+260h] [ebp-100h]
char v14; // [esp+261h] [ebp-FFh]

memset(&String, 0, 0x104u);
v10 = 0;
if ( a2 == 16 )
{
DestroyWindow(hWnd);
PostQuitMessage(0);
}
else if ( a2 == 273 )
{
if ( a3 == 1000 )
{
GetDlgItemTextA(hWnd, 1002, &String, 260);
strlen(&String);
if ( strlen(&String) > 6 )
ExitProcess(0);
v10 = atoi(&String) + 1;
if ( v10 == 123 && v12 == 120 && v14 == 122 && v13 == 121 )
{
strcpy(Text, "flag");
memset(&v7, 0, 0xFCu);
v8 = 0;
v9 = 0;
_itoa(v10, &v5, 10);
strcat(Text, "{");
strcat(Text, &v5);
strcat(Text, "_");
strcat(Text, "Buff3r_0v3rf|0w");
strcat(Text, "}");
MessageBoxA(0, Text, "well done", 0);
}
SetTimer(hWnd, 1u, 0x3E8u, TimerFunc);
}
if ( a3 == 1001 )
KillTimer(hWnd, 1u);
}
return 0;
}

满足

if ( v10 == 123 && v12 == 120 && v14 == 122 && v13 == 121 )

输入的字符长度不能大于6,否则结束程序,v10atoi()函数转为数字整型并且+1,那么满足条件的v10应该为122v12v13v14对应的Ascii字符为xyz,所以输入122xyz得到flag

最后flag为flag{123_Buff3r_0v3rf|0w}

[GUET-CTF2019]zips


下载附件

下载来是attachment.zip里面的222.zip就是第一层解压,爆破密码

111.zip是伪加密,使用010打开,修改如下图

查看sh文件

python2运行得到

出题的时候的时间戳肯定和现在不一样,估摸一下确定时间戳前两位为15
掩码爆破

解压压缩包

最后flag为flag{fkjabPqnLawhvuikfhgzyffj}

zip


下载文件

crc爆破4字节
exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#python3

import zipfile

import string

import binascii



def CrackCrc(crc):

    for i in dic:

        for j in dic:

            for k in dic:

                for h in dic:

                    s = i + j + k + h

                    if crc == (binascii.crc32(s.encode())):

                        f.write(s)

                        return



def CrackZip():

    for i in range(0,68):

        file = 'E:\\脚本合集\\misc\\buuctf misc\\crc 4\\out'+str(i)+'.zip'

        crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC

        CrackCrc(crc)

        print('\r'+"loading:{:%}".format(float((i+1)/68)),end='')



dic = string.ascii_letters + string.digits + '+/='

f = open('E:\\脚本合集\\misc\\buuctf misc\\crc 4\\out.txt','w')

print("\nCRC32begin")

CrackZip()

print("CRC32finished")

f.close()

运行得到

base64解出来貌似是字节流数据,而且结尾是RAR文件的结尾,使用脚本将base64解码并以字节流的形式写入一个新的文件

1
2
3
4
5
6
7
8
9
import base64



base64_text = open('E:\\脚本合集\\misc\\buuctf misc\\crc 4\\out.txt','r').read()

byte_stream = base64.b64decode(base64_text)

open('E:\\脚本合集\\misc\\buuctf misc\\crc 4\\new.txt','wb').write(byte_stream)

运行得到

使用010 Editor打开,添加一个RAR文件的头部

52 61 72 21 1A 07 00

保存打开

最后flag为flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}

[UTCTF2020]file header


下载附件

附件发现是一张png格式的图片但是打不开,扔到010里面看看,很显然我们发现是文件头缺少

保存打开

最后flag为flag{3lit3_h4ck3r}

[XMAN2018排位赛]通行证


下载附件

base64解密—栅栏密码 key=7

凯撒密码

最后flag为flag{oyay_now_you_get_it}

[WUSTCTF2020]girlfriend


下载附件

下载下来一个音频文件一个题目描述
使用Audacity打开这段音频

听起来像是在打电话输入号码的声音,猜测DTMF拨号音识别,有个程序可以识别一下dtmf2num.exe
99966688277733699944444777555333777444336637777
这个是手机键盘密码

999就是指按三下数字9得到的字母也就是y,以此类推,数字对应手机的每个键位,几个数字代表按几下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
999     --->   y
666 ---> o
88 ---> u
2 ---> a
777 ---> r
33 ---> e
6 ---> m
999 ---> y
4 ---> g
4444 ---> i
777 ---> r
555 ---> l
333 ---> f
777 ---> r
444 ---> i
33 ---> e
66 ---> n
3 ---> d
7777 ---> s

youaremygirlfriends

最后flag为flag{youaremygirlfriends}

[DDCTF2018](╯°□°)╯︵ ┻━┻


下载附件

长度为134字符串,按每两位截取的十六进制

1
['d4', 'e8', 'e1', 'f4', 'a0', 'f7', 'e1', 'f3', 'a0', 'e6', 'e1', 'f3', 'f4', 'a1', 'a0', 'd4', 'e8', 'e5', 'a0', 'e6', 'ec', 'e1', 'e7', 'a0', 'e9', 'f3', 'ba', 'a0', 'c4', 'c4', 'c3', 'd4', 'c6', 'fb', 'b9', 'b2', 'b2', 'e1', 'e2', 'b9', 'b9', 'b7', 'b4', 'e1', 'b4', 'b7', 'e3', 'e4', 'b3', 'b2', 'b2', 'e3', 'e6', 'b4', 'b3', 'e2', 'b5', 'b0', 'b6', 'b1', 'b0', 'e6', 'e1', 'e5', 'e1', 'b5', 'fd']

转换为10进制

1
[212, 232, 225, 244, 160, 247, 225, 243, 160, 230, 225, 243, 244, 161, 160, 212, 232, 229, 160, 230, 236, 225, 231, 160, 233, 243, 186, 160, 196, 196, 195, 212, 198, 251, 185, 178, 178, 225, 226, 185, 185, 183, 180, 225, 180, 183, 227, 228, 179, 178, 178, 227, 230, 180, 179, 226, 181, 176, 182, 177, 176, 230, 225, 229, 225, 181, 253]

可以发现都是大于128的数,把所有数-128得到ASCII码

1
[84, 104, 97, 116, 32, 119, 97, 115, 32, 102, 97, 115, 116, 33, 32, 84, 104, 101, 32, 102, 108, 97, 103, 32, 105, 115, 58, 32, 68, 68, 67, 84, 70, 123, 57, 50, 50, 97, 98, 57, 57, 55, 52, 97, 52, 55, 99, 100, 51, 50, 50, 99, 102, 52, 51, 98, 53, 48, 54, 49, 48, 102, 97, 101, 97, 53, 125]

ASCII码转换为字符

1
That was fast! The flag is: DDCTF{922ab9974a47cd322cf43b50610faea5}

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- coding:utf-8 -*-

import re

import urllib



list1 = []

list2 = []



s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"



print

len(s)

result = re.sub(r"(?<=\w)(?=(?:\w\w)+$)", " ", s)

print

result

urlencode_s = "%" + result.replace(" ", "%")

print

urlencode_s

hex_s = "0x" + result.replace(" ", "0x")

print

hex_s

print

hex_s[-4:8]

list_hex = []



for i in range(len(hex_s)):

    if ((i + 1) % 4 == 0):

        print

        hex_s[(i - 3):(i + 1)]

        list1.append(hex_s[(i - 3):(i + 1)])

        print

        i

    else:

        print

        i

        continue

print

list1



for i in list1:

    list2.append(int(i, 16))



print

list2



print

253 - 125

list3 = []

print

len(list2)

for i in range(67):

    list3.append(chr(int(list2[i]) - 128))

s = "".join(list3)

print(s)

运行得到

最后flag为flag{922ab9974a47cd322cf43b50610faea5}

[MRCTF2020]千层套路


下载附件

批量解压缩包
exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import zipfile

import os

path=r"E:\\脚本合集\\misc\\buuctf misc\\批量解压缩包" #这个自己把控想在哪里开始使用脚本

file="0573.zip"

def un_zip(Path,File_name): #传入一个路径和当前路径的压缩包名字,返回解压缩后的文件名字

        current_file=Path+os.sep+File_name #路径+'/'+文件名

        #new_path=''

        os.chdir(Path) #改变当前工作路径,方便添加文件夹

        zip_file=zipfile.ZipFile(current_file)

        #print(zip_file.namelist()[0])

        new_file=zip_file.namelist()[0] #新解压的压缩文件为新的路径名字

        #new_path=current_path + os.sep + new_file

        #os.mkdir(new_path) #新建一个以解压出来的压缩包为名字的文件夹



        #os.chdir(new_path)

        zip_file.extractall( path=Path, members=zip_file.namelist(), pwd=File_name[0:-4].encode() )#因为密码就是文件名

        zip_file.close()

        return new_file



new=file

new1=''

while (1):

        #new1=un_zip(path,new) #第一次解压出来了new1

        if(new ==''):  #判断是否解压完毕,是则直接退出

                print("end:"+new1)

                break



        else:   #否则就开始新的解压

                new1=un_zip(path,new)

                print("continue:"+new1)

                new=new1

运行得到

rgb转图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from PIL  import Image

string=''



file=open('E:\\脚本合集\\misc\\buuctf misc\\批量解压缩包\\qr.txt')

MAX=200



picture=Image.new("RGB",(MAX,MAX))

for y in range(MAX):

    for x in range(MAX):

        string =file.readline()

        picture.putpixel([x,y],eval(string)) #直接使用eval()可以转为元组

picture.show()

运行得到

扫描二维码

最后flag为flag{ta01uyout1nreet1n0usandtimes}

百里挑一


下载附件

直接查找字符串分组字节流方式查找flag,这样也可出找出前半段flag

筛选TCP114流找到后半段flag

最后flag为flag{ae58d0408e26e8f26a3c0589d23edeec}

[SUCTF2018]followme


下载附件

导出HTTP

尝试整个文件夹找一下相关关键字,例如CTFflag之类的

最后flag为flag{password_is_not_weak}

[MRCTF2020]CyberPunk


下载附件

运行

发现运行出来的是当前电脑的系统时间,根据上面提示知道只有在时间是2020.9.17的时候才能运行出flag,那就试着修改电脑系统时间

修改好后重新运行exe

最后flag为flag{We1cOm3_70_cyber_security}

[安洵杯 2019]Attack


下载附件

ctfnat-A一把梭


mimikatz破解

1
2
3
4
5
6
//提升权限
privilege::debug
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full


解压压缩包

最后flag为flag{3466b11de8894198af3636c5bd1efce2}

[BSidesSF2019]zippy


下载附件

ctf-natA一把梭

解压压缩包

最后flag为flag{this_flag_is_your_flag}

[UTCTF2020]basic-forensics


下载附件

给了个jpeg的后缀,但是文本编辑器打开是文字,直接全局搜索flag

最后flag为flag{fil3_ext3nsi0ns_4r3nt_r34l}

[SUCTF 2019]Game


下载附件


查看index.html

base解密

假flag
查看png文件

U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==

des解密

最后flag为flag{U_F0und_1t}

USB


下载附件

010 Editor打开key.ftm,搜索关键词key,有很多key的关键词,但在其中发现zip数据

导出保存打开

USB数据包,ctfnat-A一把梭

得到内容:xinan

接着使用010 Editor打开233.rar

CRC报错,报错信息显示是文件的第三个块,RAR结构有四个块:标记块归档头部块文件快结束块
分析RAR文件结构,发现文件块的位置应该是74并不是7A,修改为74后保存


stegsolve打开

扫描二维码

维吉尼亚

栅栏密码

最后flag为flag{vig3ne2e_is_c00l}

[GUET-CTF2019]虚假的压缩包


下载附件

虚假的压缩包是伪加密,修改第二个PK后五位为偶数即可

解压压缩包

RSA,解密脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
import gmpy2

p=gmpy2.mpz(3)
q=gmpy2.mpz(11)
e=gmpy2.mpz(3)
l=(p-1)*(q-1)
d=gmpy2.invert(e,l)
c=gmpy2.mpz(26)
n=p*q
ans=pow(c,d,n)
print ans

解压密码是:答案是5,用于解压另一个压缩包
解压后这张图,使用winhex修改高度

异或5

1
2
3
4
5
6
7
8
9
original = open("E:\\脚本合集\\misc\\buuctf misc\\xor\\yzyj",'r').read()

flag = open("E:\\脚本合集\\misc\\buuctf misc\\xor\\flag",'w')

for i in original:

    tmp = int(i,16)^5

    flag.write(hex(tmp)[2:])

运行后得到一大串十六进制,开头是504b0304,HEX→ASCII,保存为zip。
打开后是这样的

涉及到一个知识点:doc文件本身也是一种zip。这个很明显是word文档,修改后缀为doc。
打开后全选,颜色替换为深色在结尾可以看到flag。

最后flag为flag{th2_7ru8_2iP}

[RCTF2019]draw


下载附件

logo编程语言在线编译

最后flag为flag{RCTF_HeyLogo}

[ACTF新生赛2020]明文攻击


下载附件

解压压缩包

把图片拖入010Editor中
发现尾部存在一个flag.txt,但是缺少一个文件头

复制完后加上 50 4B,变成一个新的压缩包

保存打开

明文攻击,将flag.txt压缩

停止后保存下解密文件

最后flag为flag{3te9_nbb_ahh8}

[DDCTF2018]流量分析


下载附件

查看流量包文件

导出imf对象

保存下来

提取出来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-----BEGIN RSA PRIVATE KEY-----  
MIICXAIBAAKBgQDCm6vZmclJrVH1AAyGuCuSSZ8O+mIQiOUQCvN0HYbj8153JfSQ
LsJIhbRYS7+zZ1oXvPemWQDv/u/tzegt58q4ciNmcVnq1uKiygc6QOtvT7oiSTyO
vMX/q5iE2iClYUIHZEKX3BjjNDxrYvLQzPyGD1EY2DZIO6T45FNKYC2VDwIDAQAB
AoGAbtWUKUkx37lLfRq7B5sqjZVKdpBZe4tL0jg6cX5Djd3Uhk1inR9UXVNw4/y4
QGfzYqOn8+Cq7QSoBysHOeXSiPztW2cL09ktPgSlfTQyN6ELNGuiUOYnaTWYZpp/
QbRcZ/eHBulVQLlk5M6RVs9BLI9X08RAl7EcwumiRfWas6kCQQDvqC0dxl2wIjwN
czILcoWLig2c2u71Nev9DrWjWHU8eHDuzCJWvOUAHIrkexddWEK2VHd+F13GBCOQ
ZCM4prBjAkEAz+ENahsEjBE4+7H1HdIaw0+goe/45d6A2ewO/lYH6dDZTAzTW9z9
kzV8uz+Mmo5163/JtvwYQcKF39DJGGtqZQJBAKa18XR16fQ9TFL64EQwTQ+tYBzN
+04eTWQCmH3haeQ/0Cd9XyHBUveJ42Be8/jeDcIx7dGLxZKajHbEAfBFnAsCQGq1
AnbJ4Z6opJCGu+UP2c8SC8m0bhZJDelPRC8IKE28eB6SotgP61ZqaVmQ+HLJ1/wH
/5pfc3AmEyRdfyx6zwUCQCAH4SLJv/kprRz1a1gx8FR5tj4NeHEFFNEgq1gmiwmH
2STT5qZWzQFz8NRe+/otNOHBR2Xk4e8IS+ehIJ3TvyE=
-----END RSA PRIVATE KEY-----

添加TLS密钥

tcp追踪流
发现flag

最后flag为flag{0ca2d8642f90e10efd9092cd6a2831c0}

[SWPU2019]Network


下载附件

TTL隐写

1
不难发现[TTL](http://d.hatena.ne.jp/keyword/TTL)值只有 63,127,191,255 四种,都是2的某次幂−1的值。于是将这四个数都转换成二进制,得到 111111、1111111、10111111、11111111四个二进制数。从后面两个数字可以观察到二进制数的开头两位似乎有关系。又因为[TTL](http://d.hatena.ne.jp/keyword/TTL)值为一个8位整数,进行合理猜想,不妨将不足8位的二进制数开头补0,变为8位后再取开头两位。即:00111111、01111111、10111111、11111111提取开头两位为:00、01、10、11,恰好为全排列,可以用于数据的存储。

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
file = open("E:\\脚本合集\\misc\\buuctf misc\\TTL\\attachment.txt",'r')

flag = open("E:\\脚本合集\\misc\\buuctf misc\\TTL\\flag.txt",'w')

linee = file.readlines()

num = []

string = ""

for i in linee:

    num.append("".join(i.split('\n')))

for n in num:

    if(n == '63'):

        n = '00'

    if(n == '127'):

        n = '01'

    if(n == '191'):

        n = '10'        

    if(n == '255'):

        n = '11'

    string += n

step = 8

b = [string[i:i+step] for i in range(0,len(string),step)]

hey = []

for i in b:

    hey.append(i)

for i in hey:

    flag.write(chr(int(i,2)))

查看flag.txt

010导入十六进制

保存zip打开

伪加密

保存重新打开

base套娃

1
2
3
4
5
6
7
8
9
10
11
import base64

file = open("E:\\脚本合集\\misc\\buuctf misc\\base套娃\\flag.txt",'r')

base = file.read()

for i in range(29):

    base = base64.b64decode(base)

print(base)

运行得到

最后flag为flag{189ff9e5b743ae95f940a6ccc6dbd9ab}

[GKCTF 2021]签到


下载附件

tcp追踪流

1
64306c455357644251306c6e51554e4a5a3046355355737764306c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154576c44546d39525241707154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7162314645616b46445357644251306c6e51554e4a5a32644554545a46524530325157704e5a3046365458524e524531305257704e436e5177553078304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d644442705130354e65556c7154586c4a616b31355357704e65556b4b4e6b467154576442656b31305455524e644556715458644a616b38775a566f324d6d56774e557377643074795556645a64315a485a48593152556c3051576c4e4d5546355a4777316255733254545a7162475a7763573579555552304d464e4d64444254544170304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d6444425454485177553078304d464e4d537a42425357526159585a764e7a567462485a735130354e564530325255524e436e6f77655531334d464e4e6555467154545a524e327877596a647362584a5252484a7a5131706f516c68614d446c745647637751306c355655524a4d315a74596e4676656d3951567974736357563151303477553078304d464e4d64444254544851775530774b63336858576d786b4d5659354d544e6c4e325179576d684752324a7a576d31615a7a427363446c7064573569567974585a7a427363446c7064573569567974585a7a427363446c706457356956797458537a423354586876564531336230524e6555464454517045546a4252524534775555527356324636546c684e65444258596d593562464a48556b524f5245347759584a6b4d464a6d4f565a6162444658596e644252456c6b556d46746345524c61577832526b6c6b556d46746345524c61577832566b747754544a5a436a303955556c6f545442525245347755516f3d

解密

16进制转字符串的数据

1
d0lESWdBQ0lnQUNJZ0F5SUswd0lqTXlJak15SWpNeUlqTXlJak15SWpNeUlqTXlJak15SWpNeUlqTXlJak15SWpNeUlqTWlDTN9RRApqTXlJak15SWpNeUlqTXlJak15SWpNeUlqTXlJak15SWpNeUlqb1FEakFDSWdBQ0lnQUNJZ2dETTZFRE02QWpNZ0F6TXRNRE10RWpNCnQwU0x0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMdDBpQ05NeUlqTXlJak15SWpNeUkKNkFqTWdBek10TURNdEVqTXdJak8wZVo2MmVwNUswd0tyUVdZd1ZHZHY1RUl0QWlNMUF5ZGw1bUs2TTZqbGZwcW5yUUR0MFNMdDBTTAp0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMdDBTTHQwU0x0MFNMSzBBSWRaYXZvNzVtbHZsQ05NVE02RURNCnoweU13MFNNeUFqTTZRN2xwYjdsbXJRRHJzQ1poQlhaMDltVGcwQ0l5VURJM1ZtYnFven9QVytscWV1Q04wU0x0MFNMdDBTTHQwU0wKc3hXWmxkMVY5MTNlN2QyWmhGR2JzWm1aZzBscDlpdW5iVytXZzBscDlpdW5iVytXZzBscDlpdW5iVytXSzB3TXhvVE13b0RNeUFDTQpETjBRRE4wUURsV2F6TlhNeDBXYmY5bFJHUkRORE4wYXJkMFJmOVZabDFXYndBRElkUmFtcERLaWx2RklkUmFtcERLaWx2VktwTTJZCj09UUloTTBRRE4wUQo=

字符串BASE64解码的数据

1
2
3
4
5
6
7
8
9
wIDIgACIgACIgAyIK0wIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMiCNoQD
jMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjoQDjACIgACIgACIggDM6EDM6AjMgAzMtMDMtEjM
t0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0iCNMyIjMyIjMyIjMyI
6AjMgAzMtMDMtEjMwIjO0eZ62ep5K0wKrQWYwVGdv5EItAiM1Aydl5mK6M6jlfpqnrQDt0SLt0SL
t0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLK0AIdZavo75mlvlCNMTM6EDM
z0yMw0SMyAjM6Q7lpb7lmrQDrsCZhBXZ09mTg0CIyUDI3VmbqozoPW+lqeuCN0SLt0SLt0SLt0SL
sxWZld1V913e7d2ZhFGbsZmZg0lp9iunbW+Wg0lp9iunbW+Wg0lp9iunbW+WK0wMxoTMwoDMyACM
DN0QDN0QDlWazNXMx0Wbf9lRGRDNDN0ard0Rf9VZl1WbwADIdRampDKilvFIdRampDKilvVKpM2Y
==QIhM0QDN0Q

采用KALI LINUX中的REV命令进行逐行倒置

1
2
3
4
5
6
7
8
9
DQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyAgICAgICAgIDIw
MjEtMDMtMzAgMjA6MDE6MDggICAgICAgICAjDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQrnqpflj6M6Km5ldyA1MiAtIE5vdGVwYWQrKw0K5pe26Ze0OjIwMjEtMDMtMzAgMjA6
MDE6MTMNClvlm57ovaZdIA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCueql+WPozoqbmV3IDUyIC0gTn90ZXBhZCsrDQrml7bpl7Q6MjAyMS0wMy0z
MCAyMDowMToxMw0KW+Wbnui9pl0gW+Wbnui9pl0gW+Wbnui9pl0gZmZsbGFhZ2d7e319V1dlZWxs
Y2MpKVvliKDpmaRdIFvliKDpmaRdIDAwbW1lZV9fR0dra0NDNDRGRl9fbW0xMXNzaWlDQ0NDQ0ND
Q0NDQ0MhIQ==

base解密,

最后flag为flag{Welc0me_GkC5F_m1siCCCCCC!}

[MRCTF2020]Hello_ misc


下载附件

try to restore it.png

stegsolve,Red通道有图片

导出图片

保存下来,得到一个zip压缩包密码:!@#$%67*()-+
foremost一把梭

解压压缩包

使用Python将前两位提取提取出来,并以四个两位二进制一组,转为十进制,再转为字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
with open('E:\\脚本合集\\misc\\buuctf misc\\四位一组进制转字符串\\out.txt','r') as Dec:

    res = ''

    for i in Dec.readlines():

        Bin = '{:08b}'.format(int(i))

        print(Bin)

        Sub_Bin = Bin[:-6]

        res += Sub_Bin

    print(res)



    for j in range(0,len(res),8):

        full_bin = res[j:j+8]

        print(chr(int(full_bin,2)),end="")

运行得到

rar-passwd:0ac1fe6b77be5dbe
解压压缩包

改后缀docx

全选改字体颜色

base解密

将解码出来的结果的1替换为空格
将得到的文本重复制进docx中,搜索0

最后flag为flag{He1Lo_mi5c~}

[UTCTF2020]zero


下载附件

0宽隐写

最后flag为flag{whyNOT@sc11_4927aajbqk14}

[CFI-CTF 2018]webLogon capture


下载附件

tcp追踪流

url解密

最后flag为flag{1ns3cur3_l0g0n}

[WUSTCTF2020]spaceclub


下载附件

一开始打开txt文件,啥也没有,直接ctrl+a,全选发现了些端倪,一开始以为是摩斯电码,但是单个字符长度全是一样的。后来发现是二进制,长的是1,短的是0。

整理

1
011101110110001101110100011001100011001000110000001100100011000001111011011010000011001101110010011001010101111100110001011100110101111101111001001100000111010101110010010111110110011001101100010000000110011101011111011100110011000101111000010111110111001100110001011110000101111101110011001100010111100001111101

赛博厨子一把梭

最后flag为flag{h3re_1s_y0ur_fl@g_s1x_s1x_s1x}

[ACTF新生赛2020]music


下载附件

010查看文件

猜测对整个原文件进行了异或,对整个文件内容进行异或

保存打开

听内容得到:actfabcdfghijk
最后flag为flag{abcdefghijk}

[MRCTF2020]Unravel!!


下载附件

010查看音频文件

1
U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=

foremost

AES解密

解压压缩包,使用静默之眼

最后flag为flag{Th1s_is_the_3nd1n9}

[GKCTF 2021]excel 骚操作


下载附件

打开文件 除了第一行的文字再没发现其他东西
随便点点,发现有些单元格显示值为1,有些不显示。


将值为1 的单元格显示出来。
选中若干单元格,右击,单元格格式,如图所示。

第三步
看样子像是二维码一样的排列,将值为1的单元格涂黑。(明明excel这步怎么做是最重要的好多教程一笔带过,真是服了)
选中单元格,点击条件格式,突出显示单元格规则,等于,自定义格式为黑色。
得到图案稍微调整一下行高。设置行高27

扫码 看上去不像是二维码,用微信扫不出来
查资料发现是汉信码。
打开中国编码网下载对应app,扫码得到flag

最后flag为flag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}

[MRCTF2020]pyFlag


下载附件

每张图结尾都附加了一部分的zip数据



按照顺序将每部分zip数据提取出来拼接在一起得到data.zip

保存zip打开

爆破密码

解压压缩包

官方脚本
exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python

import base64
import re

def baseDec(text,type):
if type == 1:
return base64.b16decode(text)
elif type == 2:
return base64.b32decode(text)
elif type == 3:
return base64.b64decode(text)
elif type == 4:
return base64.b85decode(text)
else:
pass

def detect(text):
try:
if re.match("^[0-9A-F=]+$",text.decode()) is not None:
return 1
except:
pass

try:
if re.match("^[A-Z2-7=]+$",text.decode()) is not None:
return 2
except:
pass

try:
if re.match("^[A-Za-z0-9+/=]+$",text.decode()) is not None:
return 3
except:
pass

return 4

def autoDec(text):
while True:
if b"MRCTF{" in text:
print("\n"+text.decode())
break

code = detect(text)
text = baseDec(text,code)

with open("flag.txt",'rb') as f:
flag = f.read()

autoDec(flag)

运行得到

最后flag为flag{Y0u_Are_4_p3rFect_dec0der}

[UTCTF2020]File Carving


下载附件

foremost

执行文件

最后flag为flag{2fbe9adc2ad89c71da48cabe90a121c0}

[watevrCTF 2019]Evil Cuteness


下载附件

dd分离

最后flag为flag{7h475_4c7u4lly_r34lly_cu73_7h0u6h}

二维码


下载附件

使用PS


扫描二维码

最后flag为flag{7bf116c8ec2545708781fd4a0dda44e5}

[QCTF2018]X-man-A face


下载附件

ps补定位符扫描二维码

用手机微信就可以扫出来
KFBVIRT3KBZGK5DUPFPVG2LTORSXEX2XNBXV6QTVPFZV6TLFL5GG6YTTORSXE7I=

base解密

最后flag为flag{Pretty_Sister_Who_Buys_Me_Lobster}

派大星的烦恼


下载附件

010查看文件

只有两种格式,猜测[二进制]

1
"DD"DD""""D"DD""""""DD"""DD"DD""D""DDD""D"D"DD""""""DD""D""""DD"D"D"DD""""D"DD""D"""DD"""""DDD""""D"DD"""D"""DD"""D""DD"D"D"DD"""DD""DD"D"D""DD""DD"DD"""D"""DD""DD"DD""D"D""DD"D"D"DD"""D"""DD"""D"DD""DD"""DD"D"D""DD"""D"DD""DD""DD"""""DDD""DD""DD"""D""DD""

" -> 0
D -> 1

1
0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100

逆序

1
0011001000110011001110000011001100110100011001010110001100110100011000100011010101100101001101100110001000110110011001010110011000110101011001000110001000110100001110000011000100110100001101010110000100110000001101010011100100110110001100000011010000110110

二进制转字符串

最后flag为flag{23834ec4b5e6b6ef5db48145a0596046}

[INSHack2017]sanity


下载附件

打开文件

最后flag为flag{Youre_sane_Good_for_you}

key不在这里


下载附件

扫描二维码

1
https://cn.bing.com/search?q=key%E4%B8%8D%E5%9C%A8%E8%BF%99%E9%87%8C&m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568&qs=n&form=QBRE&sp=-1&sc=0-38&sk=&cvid=2CE15329C18147CBA4C1CA97C8E1BB8C

m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568

直接转ascii码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s = '10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568'

temp = ''

while len(s):

    if int(s[:3]) < 127:

        temp += chr(int(s[:3]))

        s = s[3:]

    else:

        temp += chr(int(s[:2]))

        s = s[2:]

print(temp)

运行得到

url解密

最后flag为flag{5d45fa256372224f48746c6fb8e33b32}

大流量分析(一)


下载附件

附件有很多不同时段的流量包,打开其中一个看看:

黑客攻击时会产生大量的数据包。利用wireshark统计工具分析一下:

统计-会话。发现183.129.152.140与内网IP建立会话的Packets较多。

统计-端点。同样发现183.129.152.140的包数最多
统计-IPv4 Statistics-ALL Address。统计下IP,183.129.152.140的数量最多

所以,183.129.152.140应该就是黑客的IP
最后flag为flag{183.129.152.140}

粽子的来历


下载附件

打开是乱码。010查看

将’IComeFromAlibaba’都改为’ÿ’

保存打开

间距大的为1 较小的为0

md5加密

最后flag为flag{d473ee3def34bd022f8e5233036b3345}

[MRCTF2020]不眠之夜


下载附件

拼图

120张,每张都是200 x 100,应该长:10张图片宽:12张图片,那么拼起来的总图就应该是长:2000 x 宽:1200

使用montage
montage *.jpg -tile 10x12 -resize 4000x2400 -geometry +0+0 out.jpg

使用gaps
gaps –image=out.jpg –generations=90 –population=120 –size=200

打开图片

最后flag为flag{Why_4re_U_5o_ShuL1an??}

hashcat


下载附件

下载附件,无后缀文件,并且根据名称提示得先知道它的类型
binwalk看看有什么东西

发现是xml文件,修改后缀为ppt,发现是个加密的ppt

使用hashcat爆破

得到密码 9919

打开ppt

修改文字颜色

最后flag为flag{okYOUWIN}

[UTCTF2020]sstv


下载附件

无线电隐写 rx-sstv

最后flag为flag{6bdfeac1e2baa12d6ac5384cdfd166b0}

voip


下载附件

播放流量

最后flag为flag{9001IVR}

[SCTF2019]电单车


下载附件
下载附件,是一个音频文件,拖入au看看
有长有短,考的知识点是PT2242信号,短的为0,长的为1化出来
00111010010101010011000100011101001010101001100010
一段重复去重为00111010010101010011000100
根据知识点可知:前面4bit表示同步码,中间的20bit表示地址码,后面的4bit表示功能码,最后一位是停止码
即0 01110100101010100110 0010 0
flag就是地址码flag{01110100101010100110}

[GUET-CTF2019]soul sipse


steghide extract -sf out.wav
无密码

修复一下

解密

最后flag为flag{5304}


文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录