BUGKU-杂项

1.这是一张单纯的图片
2.隐写
3.telnet

4.眼见非实(ISCCCTF)

下载文件zip(无后缀),推测为zip包。补全后缀并打开
BUGKU-杂项_第1张图片
果然如此,尝试打开报错,用010Editor查看文件头为504B0304
文件为压缩包文件修改后缀打开
BUGKU-杂项_第2张图片
看不懂,百度XML文件了解一下下,没得头绪。
尝试直接查看文件,直接搜索出现flag。

5.啊哒

首先查看属性,得到:
在这里插入图片描述

感觉有用,解码得:sdnisc_2018
接着继续分析,010Editor打开,文件头为FFD8FF,文件尾应为FFD9
很明显看到结尾不是FFD9,向上翻一点可以看到文件尾。
猜测为两个文件拼接,binwalk ada.jpg
BUGKU-杂项_第3张图片
猜测正确。binwalk -e ada.jpg
分离文件,得到压缩包。解压需要密码,尝试输入刚开始得到的 sdnisc_2018 密码正确,得到flag。

6.又一张图片,还单纯吗

010editor打开
BUGKU-杂项_第4张图片

拖入kali binwalk分析
BUGKU-杂项_第5张图片
不晓得为啥binwalk -e 没有分离图片
这里使用了foremost分离结果如下:
BUGKU-杂项_第6张图片
打开jpg文件夹即可得到flag

7.猜

随便一个识图网站即可
360识图
百度识图

8.宽带信息泄露

用routerpassview打开.bin文件
BUGKU-杂项_第7张图片

9.隐写2

binwalk分离文件。结果如下:
BUGKU-杂项_第8张图片

得到flag.rar解压密码——方法一:
通过百度可以知道红桃k为查理曼,雅典娜为黑桃Q,梅花J代表着兰斯洛特。观察键盘可以发现对应数字为8、1、7。(如若不理解,搜一下打字指法,大概就可以明白为什么KQJ对应8、1、7了)然后就把817排列组合,挨个试就可以得到解压密码了。

得到flag.rar解压密码——方法二:
使用APCHPR进行爆破
BUGKU-杂项_第9张图片

得到flag.rar解压密码——方法三:
fcrackzip暴力破解
fcrackzip是破解zip压缩包的,题目中虽然为rar后缀,但文件头为zip,故可以使用fcrackzip暴力破解
在这里插入图片描述
fcrack使用方法
BUGKU-杂项_第10张图片
BUGKU-杂项_第11张图片解压得到一张图片,winhex打开,最后可以发现 flag(BASE64 加密的) 。解密即可。

Base64密文有如下特点:
1.字符串只可能包含A-Z,a-z,0-9,+,/,=字符 
2.字符串长度是4的倍数 
3.=只会出现在字符串最后,可能没有或者一个等号或者两个等号 

10.多种方法解决

下载直接打开
BUGKU-杂项_第12张图片
emmmm 010editor打开
BUGKU-杂项_第13张图片
很明显BASE64加密的,还原为图片。得到二维码。使用 小米手机_(:з」∠)_扫一扫即可得到flag。

11.闪的好快

使用Stegsolve逐帧查看,同时使用屏幕二维码扫描器得到二维码包含的信息 即可得到flag。

12.come_game

下载解压之后发现是一个游戏
试玩一下会发现多了几个文件
其中有一个文件名为save1(关卡)
修改即可

13.白哥的鸽子

查看属性,未得到有用信息。010editor 打开
在结尾处发现:
BUGKU-杂项_第14张图片
可以看出来有 flag{} ,明文信息未改变,只是打乱了顺序,推测为栅栏加密法加密,解密即可。

14.linux

方法一 cat flag
BUGKU-杂项_第15张图片

方法二 cat flag |grep ‘{’ -a -C 1 flag
查找 { 字符
BUGKU-杂项_第16张图片
方法三 strings flag
BUGKU-杂项_第17张图片

15.隐写3

tweakpng打开
BUGKU-杂项_第18张图片
CRC校验错误,宽度或者高度出错。修复即可得到flag。

16.做个游戏(08067CTF)

BUGKU-杂项_第19张图片
文件头为504B 0304(zip压缩文件),修改后缀名。
解压缩粗略查看后,flag应在cn文件夹
windows下cmd
在这里插入图片描述

flag为base64加密,解密即可。

17.想蹭网先解开密码

已经提示了前七位密码。所以我们可以暴力破解。
破解工具我们选择aircrack-ng这里没得问题。但是字典怎么弄,我不晓得。
然后就问度娘了。发现了一个很好的字典生成工具crunch
BUGKU-杂项_第20张图片BUGKU-杂项_第21张图片

18.Linux2

在这里插入图片描述

19.账号被盗了

思路

20.细心的大象

打开图片看到SHOT ON MI 6
感觉属性里应该有信息,果不其然在备注中发现了信息
base64加密的 ,先解密出来
然后放到kali里
BUGKU-杂项_第22张图片

得到一个加密的rar文件,输入刚刚解密得到的字符串
里面是一张图片,额…
和这是一张单纯的图片一毛一样的解法。得到flag

21.爆照(08067CTF)

首先查看图片属性,无果
放到kali里,binwalk分析图片BUGKU-杂项_第23张图片
分离出一个压缩包,打开发现有一张gif图和一些文件。首先根据文件头将文件的后缀名补齐。
BUGKU-杂项_第24张图片
很明显88.jpg有一张二维码。定位符好像有残缺,一直扫不到,给它补齐扫码的到bilibili。
然后查看各个图片的属性在888.jpg的备注得到base64加密的字符串,解密得到silisili。
8888.jpg也是binwalk得到一张二维码,扫码得panama
结合题目提示flag格式:flag{xxx_xxx_xxx}
将上面的字符串组合即可得到flag。

22.猫片(安恒)

题目提示 hint:LSB BGR NTFS
LSB为最低有效位;BGR为最低有效位的顺序;根据提示得:
BUGKU-杂项_第25张图片
应该是一张png格式的图片,但是文件头不对,将前面多出来的 fffe 删去,保存得到半张二维码。
BUGKU-杂项_第26张图片
应该是高度做了手脚,修正即可。
补全后扫的时候发现扫不到。仔细观察发现颜色是反的,将其反色得到正确的二维码。
扫描完整的二维码,得到一个百度网盘的地址。
BUGKU-杂项_第27张图片
下载后得到 flag.rar 文件。解压得到flag.txt。然而…
BUGKU-杂项_第28张图片

按理说有三个提示,但是目前为止只用到两个,剩下的NTFS死活不知道有啥用。
后来百度了大佬的writeup,才晓得还有一个NTFS交换数据流隐藏文件的骚操作。
然后将隐藏的文件弄出来,是一个pyc文件。
反编译为py文件。

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']

py文件是加密函数,写一个解密函数

import base64
def decode():
    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']
    flag = ""
    ciphertext.reverse()
    for i in range(len(ciphertext)):
        s = int(ciphertext[i])
        if i%2 ==0:
            s = s-10
        else:
            s = s+10
        flag += chr(i ^ s)
    print(flag)
decode()

得到flag

23.多彩(未做)

24.旋转跳跃

使用MP3Stego,使用方法百度。
BUGKU-杂项_第29张图片
结果如下:
在这里插入图片描述
打开sycgeek-mp3.mp3.txt即可得到flag。

25.普通的二维码

解压缩得到一张二维码,扫码得:
BUGKU-杂项_第30张图片

010Editor打开二维码图片:
BUGKU-杂项_第31张图片
这一串数字最大为7,应该是8进制。跑脚本

with open(r"C:\Users\xxx\Desktop\CTF\25.txt", "r") as temp:
    res = ""
    for i in range(42):
        s=eval('0o'+temp.read(3))
        res+=chr(int(s))
print(res)

得到flag

26.乌云邀请码

解压出图片后,查看属性、010Editor打开、binwalk、CRC校验高宽度。
均无任何发现,可能是LSB 和 图层隐写。
果然是LSB隐写
BUGKU-杂项_第32张图片

27.神秘的文件

解压得到 flag.ziplogo.png
解压flag.zip发现它是加密的
预览发现flag.zip 包含一张相同的 logo.png
所以可以采用明文攻击破解密码
注意:明文攻击时采用的算法应该相同,并且明文攻击需要两个压缩包都只含一个文件
BUGKU-杂项_第33张图片

我的 ARCHPR 不可以得到密码。网上说是版本的原因

最终得到密码 q1w2e3r4
解压得到的一份word文档,文档里面是一张笑脸。
BUGKU-杂项_第34张图片
我们没发现什么有价值的东西。接下来我们把word文档放到 kali 里
binwalk分析一下。
BUGKU-杂项_第35张图片
分离出来的文件加中有一份flag.txt文档。打开以后是一串BASE64加密的字符串。
解密即可得到flag。

28.论剑

下载得到一张图片,属性 -> binwalk -> 颜色通道 -> LSB(均未得到线索)
010Editor打开。详细查看:BUGKU-杂项_第36张图片
FF D9 是jpg文件的尾部。紧挨着是一串二进制数。将其转换为字符。

s = input("输入要转换的字符串:")
list = s.split()
str1 = '0b'
for i in list:
    str2 = str1 + i
    char1 = chr(eval(str2))
    print(char1,end = "")

BUGKU-杂项_第37张图片应该是有用的。翻到最下面发现还是FF D9结尾。那应该还有一张图片。
搜索jpg的文件头。又发现了一张图片。然而这张图片并没有什么用。
后来实在是没有思路
看了大佬的WP,又了解到一个新的文件头(7z压缩包的头:37 7A BC AF 27 1C)
将原来错误的文件头38 7B BC AF 27 1C修改为正确的文件头,然后分离出来
再将7Z压缩包里的图片和原图片的高度修改可以发现:
BUGKU-杂项_第38张图片 结合起来得到 not flag{666C61677B6D795F6E616D655F482121487D}
BASE16解密得到flag。

29.图穷匕见

010Editor打开下载的图片,可以发现后面是一串二进制文本。
BUGKU-杂项_第39张图片
将其转换为ASCII码
得到许多的坐标,应该是鼠标的流量数据包,转换为Gnuplot可以识别的格式
BUGKU-杂项_第40张图片

Gnuplot绘图,得到一张二维码。扫码得到flag。
BUGKU-杂项_第41张图片

30.convert

下载打开是二进制文本。首先转换为16进制。
在文本开头添加 0b 。跑一下脚本。

file1 = open(r'C:/Users/xxx/Desktop/CTF/BugKu/杂项/30/1.txt' , "r")
s = file1.read()
print(hex(int(s , 2)) , end = "")
file1.close()

BUGKU-杂项_第42张图片
去除开头的0x。开头为52 61 72 21(rar文件头)。将十六进制数复制至Notepad++
转换为ASCII码(插件 -> converter -> Hex->ASCII)
保存为rar文件。解压得到一张图片,属性内包含一串BASE64加密的密文
解密得到flag。

31.听首音乐

使用Audacity打开可以发现有一些像莫尔斯密码的东东
BUGKU-杂项_第43张图片
短的代表. 长的代表-。将得到的莫尔斯电码解码:
BUGKU-杂项_第44张图片

得到字符串一点头绪没有,
BASE64解码不对
falg{5BC925649CB0188F52E617D70929191C}不对
key{5BC925649CB0188F52E617D70929191C}不对
万万没想到直接提交字符串就可以~

32.好多数值

下载下来是一个txt文档,打开是一行行RGB值(共61366行),每行代表一个像素点。
分解因数
BUGKU-杂项_第45张图片长和宽 就这三个数的组合。(例:长 2,宽 30683…)
跑一下脚本就可以还原出来图片。
跑脚本前需安装pillow库
python安装pillow(转载)
脚本(转载)

33.很普通的数独(ISCCCTF)

下载解压缩是25张数独图片
仔细观察发现这是同一道数独题。有的格子有数字,有的没有
有数字的代表1,没有的代表0。再把得到的数字用python画出二维码。
1.png,5.png,21.png仔细看看就是是二维码的定位形状,三个角上的方形块,但是按排列的画,这三个图的顺序不对,需要将图片1.png,5.png,21.png重命名成:5.png,21.png,1.png,然后把01提取出来:

111111101010101000101000001111110000101111111
100000101100111101010011101100011001001000001
101110101110011111010011111101000101001011101
101110101101100010001010000011110001101011101
101110100011100100001111101111111011101011101
100000101100100000011000100001110100001000001
111111101010101010101010101010101011101111111
000000000011001101001000110100110011100000000
110011100100100001111111100100101000000101111
101001001011111111101110101011110101101001100
100000111100100100000110001101001101010001010
001100010011010001010011000100000010110010000
010110101010001111110100011101001110101101111
100011000100011100111011101101100101101110001
001100110100000000010010000111100101101011010
101000001011010111110011011111101001110100011
110111110111011001101100010100001110000100000
110101000010101000011101101101110101101001100
010011111110001011111010001000011011101101100
011001011001010101100011110101001100001010010
010111111111101011111111101101101111111111100
011110001100000100001000101000100100100011110
111110101110011100111010110100110100101010010
110010001011101011101000111100000011100010000
101011111011100111101111111100001010111110010
110100011000111000100111101101111101000100010
111101111110001001000011010110001111110111110
011001010101000110010100010001000101101010001
011101110101101101100100001101101000111101001
110110001001101100010101101111110100101100110
000011100111000000000100001010101111100010010
111010010011110011101110010100001011111010010
101001100010111111110100000100001010101010100
000010011001001101110101001111100101111101101
000010111101110001101011000001000101110100110
011110011010100010100000011011000001110010000
100110100100001101111111101100101110111110011
000000001111110101101000101011100100100011010
111111100011111011011010101101110011101011110
100000101110101101101000111110010001100010001
101110101011100001111111101101001000111111011
101110100110111101101000001001101100011101101
101110100000011101100001101010110010010010001
100000101011001011111011001011000011010110000
111111101010101001111011110101101110000101101

写脚本把图画出来:

from PIL import Image
x = 45
y = 45
im = Image.new("RGB",(x,y))#创建图片
with open("1.txt") as file:
    list1 = file.readline()
    for i in range(x):
        for j in range(y):
            if list1[i * x + j] == '1':
                im.putpixel((i,j), (0, 0 ,0))
            else :
                im.putpixel((i,j), (255, 255, 255))
im.show()

扫码得到Base64密文

Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9

解密好几次后得到flag。

34.PEN_AND_APPLE(未做)

35.color

下载解压得到七张图片
用tweakpng打开得到的图片,CRC校验出错,改一下高度。(其实在每张图片的颜色通道有提示信息,连起来就是Make Me Tall把图片加高)
可以看到下面有黑白相间的小方块,记录下来(黑色代表1,白色代表0)
BUGKU-杂项_第46张图片

后面我就想不通20个二进制可以表示个啥?
万万没想到是竖着看(所以不要被思维局限 0.0),跑个脚本就可以得到flag了。

row1 = '11111111010111101111'
row2 = '11111011111110111111'
row3 = '00001100101010110001'
row4 = '01001010010000001101'
row5 = '11010011011101010111'
row6 = '10011011011010110110'
row7 = '00111001101101111101'
for i in range(0 , 20):
    str1 = row1[i] + row2[i] + row3[i] + row4[i] + row5[i] + row6[i] + row7[i]
    print(chr(int(str1 , 2)),end = '')

36.怀疑人生

解压得到一个压缩包、一张图片、一张二维码

  • 二维码扫码得——12580}
  • 图片用010Editor 打开在末尾可以发现一个zip文件
    解压得到txt文件是Ook密文。解密得到3oD54e(base58加密,太难了 0.0)。
    再次解密得misc
  • 压缩包有密码,咋都想不到密码,看了WP,密码是password
    压缩包里是一串base64密文,解密得到 Unicode编码
    \u66\u6c\u61\u67\u7b\u68\u61\u63\u6b\u65\u72
    之后再解码得flag{hacker

拼接起来flag{hackermisc12580}

37.红绿灯(未做)

38.不简单的压缩包

大佬的Write up

39.一枝独秀

大佬的Write up

40.小猪佩奇

思路
(写给自己:注意python会将换行符当作一个字符。跑字典时要注意)

41.好多压缩包

42.一个普通的压缩包(xp0intCTF)**

43.2B

44.QAQ

45.apple

46.妹子的陌陌

47.就五层你能解开吗

你可能感兴趣的:(BUGKU-杂项)