BUGKU靶场解题记录之misc(一)

2024-02-28 19:42:41 浏览数 (2)

BugkuCTF解题记录之misc(一)

[TOC]


1、签到题

直接扫描二维码就行,这是最简单的签到题

2、 0和1的故事

这道题是一个较为常见的二维码隐写题目,用0和1分别作为二维码的黑色与白色部分。在使用工具扫码得到flag。

这种题目的难点在于,二维码的生成,个人感觉还是用python写一个脚本做最方便。

代码语言:javascript复制
from PIL import Image
with open("1和0的故事.txt", "r") as f:
    data = [list(i.strip()) for i in f.readlines()]
# 7*7的定位标志
flag = [
    [1, 1, 1, 1, 1, 1, 1],
    [1, 0, 0, 0, 0, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 1, 1, 1, 0, 1],
    [1, 0, 0, 0, 0, 0, 1],
    [1, 1, 1, 1, 1, 1, 1]
]
img = Image.new("1", (25, 25))
for i in range(len(data)):
    for j in range(len(data[1])):
        # 左上角定位标志
        if i < 7 and j < 7:
            img.putpixel((i, j), flag[i][j] ^ 1)
        # 左下角定位标志
        elif i > 17 and j < 7:
            img.putpixel((i, j), flag[i-18][j] ^ 1)
        # 右上角定位标志
        elif i < 7 and j > 17:
            img.putpixel((i, j), flag[i][j-18] ^ 1)
        else:
            img.putpixel((i, j), int(data[i][j]) ^ 1)
img.resize((500, 500)).show()

不过我还是看到了一个神奇的解法,来自评论区的神奇解法,这个解法是一种很神奇的操作,将01串放在Excel里,将其设计成正方形的单元格。在把为1的用黑色填充。最后把其他的部分p上……

  1. 之前解其他题也用过一个类似的脚本
代码语言:javascript复制
from PIL import Image
x = 25
y = 25
im = Image.new('RGB', (x, y))
white = (255, 255, 255)
black = (0, 0, 0)
 
with open('1.txt') as f:
    for i in range(x):
        ff = f.readline()
        for j in range(y):
            if ff[j] == '1':
                im.putpixel((i, j), black)
            else:
                im.putpixel((i, j), white)
im.resize((1000, 1000)).show()

不过这个脚本的问题是在这个题中你还得将三个角上面的01串改成正常的识别区域(下面这个脚本生成的图片清晰度一直令人发指)。

使用工具扫描二维码得到flag。

flag{QR_c0de_1s_1nterest1n9}

3、这是一张单纯的图片

这个题怎么说呢?解法多种多样….

用winhex或者直接用记事本打开都能看到这一串

代码语言:javascript复制
&#107;&#101;&#121;&#123;&#121;&#111;&#117;&#32;&#97;&#114;&#101;&#32;&#114;&#105;&#103;&#104;&#116;&#125;

实际上这个是 html 编码后的串直接解码得到key{you are right}

当然我看到评论区有个人的方法是直接改拓展名为是HTML,这样更方便,毕竟这都不需要多一步解码了。

4、隐写

这个是最简单的隐写,鼠标右键属性可以查看图片的行高和列宽,都是500,用winhex打开,发现行长为01F4,列高为01A4,修改列高再看图片就行了。

BUGKU{a1e5aSA}

5、telnet

这个题使用wireshark里面的追踪Tcp流就能直接得到flag。

6、眼见非实

打开文件发现里面写了PK,好吧压缩包,改拓展名改为zip,最基础的方式是一个个找好在文件不多用不了几分钟,当然有很多公具能够帮我们完成检索。这里就不一一列举

得到flag{F1@g}

7、啊哒

这里引入一个工具Formost,这个工具可以拆解文件。下载图片发送到Formost分解得到一个压缩包,压缩包需要密码进行解压,这个时候不要忘记观察图片的属性,属性里有一串16进制的代码,将其转化成字符串就是相应的解压密码sdnisc_2018。得到flag

flag : flag{3XiF_iNf0rM@ti0n}

8、ping

这道题我一时间想不到说什么好,这个是正常人想出来的操作,下载得到一个流量包,这个流量包全部是ICMP流,这道题真的跟题目一样是拼, 最简单的解法wireshark打开一个包一个包看下面字符,进行拼接得到flag 。

9、可爱的故事

可可爱爱没有脑袋 一‌‍‍‎‍‎‍‌‌‎‌‎‍‌‏‍‏‌‎‌‏‏‍‌‎‍‍‌‎‏‎‍‌‏‎‍‏‏‌‎‍‎‍‌‌‌‎‍‌‌‍‍‌‎‏‍‍‌‏‌‎‍‌‍‌‌‍‌‌‍‌‌‍‌‎‍‍‌‎‌‎‏‍‏‏‌‌‎‌‍‏‎‌‌‍‍‍‌‎个可爱的故事 这‍‌‍‌‎‌‏‏‍‌‎‍‌‍‍‎‏‏‌‌‏‌‌‏‌‍‍‌‎‏‍‏‏‌‏‎‎‏‌‌‍‏‍‍‌‎‏‎‌‌‌‏‎‎‎‌‍‍‎‏‎‎‏‏‍‌‌‌‏‏‍‌‌‌‏‏‍‌‌‌是一种奇怪的文字写的故事 f‍‌‎‏‎‍‌‏‎‍‏‏‌‏‎‎‏‏‌‏‎‍‎‎‌‌‍‌‌‍‌‌‍‌‎‍‌‏‌‏‎‍‌‎‏‍‍‌‏‌‎‍‌‍lag就藏在其中 flag为大兔子说的一句带bugku的话 如‌‌‎‎‌‍‌‏‎‎‏‌‌‍‏‍‏‏‍‌‎‍‌‌‎‎‌‍‌‏‎‎‏‌‌‍‏‍‏‏‍‌‎‍‌‌‌‏‏‌‌‌‍‌‎‌‍‏‌‌‏‌‍‍‌‎‍‍‎‏‍‌‎‍‍‎‏‍‍‌‎‏‎‌‌‎‎‌‎‌‍‎‎‎‍‎‌‎‌‏‌‌‏‌‌‍‌‌‍‌‌‍‌‎‌‎‌‍‏‎‌‌‍‍‍‌‎‌‌‏‍‌‎‎‏‏‍‌‌‌果找到了 就‌‌‍‏‍‌‌‍‌‎‌‍‏‌‎‏‍‍‌‏‌‎‍‌‍‌‌‏‌‎‌‍‌‏‍‌‏‎‌‍‌‌‍‎‎‌‍‏‎‌‏‌‏‎‍‎‎‍‌‍‌‍‌‍‍‍‏‌‍‌‍‌‌‍‍‏‌‌‏‍‏‏‎‍‌‏‏‎‍‏‍‌‏‎‍‎‍‍‎‎‎‍‌‏‏‌‍‌‍‌‌‌‍‌‌‎‎‌‍‏‏‍‍‍‌把他全部变成小写然后包上bugku{}

来看下这个题给的图片……

这是人的语言吗?????

直到我看到别人的解答里来了一句,原神里面的提瓦特字母 …….

代码语言:javascript复制
bugku{iamlearningteyvatinbugku}

得,我裂开了……

2022年3月20日,原神真香

10、赛博朋克

flag{Hel1o_Wor1e}

11、猜

这题还真是猜……, 图中人物名字全拼。打开照片一看刘亦菲,嗯金币-1……

代码语言:javascript复制
flag:   key{liuyifei}
12、又一张图片还单纯吗?

这个题,最简单的方法是使用formost进行分解,分解得到的那张图片上面的就是flag,正常的做法实际上不应该直接使用formost。

代码语言:javascript复制
//对于图片隐写题目,推荐先看属性查看是否有隐藏的信息,再使用 010edit 或者winhex查看图片信息
//使用winhex查看文件, 搜索504b 0304(压缩包头),FFD8FF(jpg文件头) ,89504E47(png文件头)
//确定在文件中隐藏其他文件时再使用formost进行分解。
13、社会主义核心价值观

嗯,这道题是不是可以扔到密码学里面,这是一个神奇的编码,知道有这种编码方式解决就行。

14、where is flag 番外篇

这道题的脑洞是真大……

解压全部文件得到一个加密压缩包,和一堆经过修改的出师表…..

在看到这一堆出师表后,我觉得还不如去看看,那个加密压缩包是不是伪加密,用winhex打开,最后一通操作下来确定这个是正常加密……

经过刚刚的两部操作,实际上已经确认了这个的解压密码与这一堆叫做出师表文件有关。但是看文件那一堆AAAAA,CCCCC,我觉得这个密码可能是这些字母的数量….结果还是小瞧了出题人。

在评论区有大佬这么提示:**每个文档的字数不一样会对文档的大小产生影响,而有的文档最后之所有有大写字母来填充,那么就是为了凑文档大小的数字!!! **

好家伙这一层实际上是用压缩前的大小减去压缩后大小的差…..

代码语言:javascript复制
75 101 121 58 90 104 117 71 76 64 64 46 48

得到这一串,这一串实际上是ascll码的形式,ZhuGL@@.0这个就是最好的密码…..

得,又一张图片看下里面属性啥也没有,使用winhex打开,拖到最后看到这一串

代码语言:javascript复制
flag in here {LjFWBuxFNTzEWv6t2NfxjNFSH1sQEwBt5wTTLD1fJ}

结果这个并不是flag…..出题人我劝你善良…..

里面这一串是base编码,但是不是我们最熟悉的base64,是神奇的base58……

base58:编码去掉了几个看起来会产生歧义的字符,如 0 (零), O (大写字母O), I (大写的字母i) and l (小写的字母L) ,和几个影响双击选择的字符,如/, 。结果字符集正好58个字符(包括9个数字,24个大写字母,25个小写字母)。

最后 bugku{th1s_1s_chu_Sh1_B1A0!!@} …..

说真的出题人我劝你善良…………

15、贝斯手

看下题目给的提示……

这剧叫做《缝纫机乐队》,女主叫丁建国,是一名贝斯手,剧中面试的时候,问到腿是怎么回事的时候,回答了”又长又白又细”,我爱了,成功圈粉

txt看上去是没东西了,但实际上这是个假象,在txt最后还有一段提示

密码我4不会告诉你的,除非你知道我的女神是哪一年出生的给你个提示:申猴,闰年

这里如果说考了什么内容的话,应该说是细心观察和知识检索的能力….

代码语言:javascript复制
5 58==327a6c4304ad5938eaf0efb6cc3e53dcCFmZknmK3SDEcMEue1wrsJdqqkt7dXLuS

这个其实是一段md5和一段base58,千万别以为是先md5后base58来着….小写的那部分是md5,因为存在0很容易确认,相应的大写的范围是base58

得到flag{this_is_md5_and_base58}

16、隐写2

这个隐写题的难度也不是很大, 从网站上下载下来就是一张图片,同过winhex分析其中包含一个zip压缩包。 使用formost分解即可。得到一个名为flag的压缩包还有一个图片。根据图片提示的信息三位数字…这样直接暴力跑就能得出来了。使用ARCHPR暴力破解就能得到密码871

单纯给了三个字母,对应三个数字,肯定不可能是在字母表里的顺序,对应键盘,则Q对应数字1,J对应数字7,K对应数字8(在键盘同一列)。

得到的是一张图片用winhex打开在最后发现这一串

代码语言:javascript复制
f1@g{eTB1IEFyZSBhIGhAY2tlciE=}

不过里面的是base64编码,稍微解码下得到flag{y0u Are a h@cker!}

17、普通的二维码

下载得到一张图片是一张二维码,使用工具扫码,他告诉我flag不在这里….

使用winhex打开有这一段(这里我已经将其三个一组分开)

代码语言:javascript复制
146,154,141,147,173,110,141,166,145,137,171,060,125,137,120,171,137,163,143,162,151,160,164,137,117,164,143,137,124,157,137,124,145,156,137,101,163,143,151,151,041,175,@xjseck!

这里能看出数字永远是0到7,应该是八进制将其转化为10进制,在将其视为对应的ascill码

对应脚本

代码语言:javascript复制
#include<stdio.h>
int main(){
	int misc1[42]={146,154,141,147,173,110,141,166,145,137,171,60,125,137,120,171,137,163,143,162,151,160,164,137,117,164,143,137,124,157,137,124,145,156,137,101,163,143,151,151,41,175};
	char misc2[42];
	int a1,a2,a3;
	for(int i=0;i<42;i  )
	{
		a1=misc1[i]/100;
		a2=misc1[i]/10;
		a3=misc1[i];
        misc2[i]=a1*8*8 a2*8 a3;
	}
	for(int j=0;j<42;j  )
	{
		printf("%c",misc2[j]);
	}
	printf("n");
    return 0;
}

最后得到flag。

代码语言:javascript复制
flag{Have_y0U_Py_script_Otc_To_Ten_Ascii!}
18、多种方法解决

将文件转化成txt格式,打开文件里面是这么一堆东西

代码语言:javascript复制
data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAAIUAAACFCAYAAAB12js8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAArZSURBVHhe7ZKBitxIFgTv/396Tx564G1UouicKg19hwPCDcrMJ9m7/7n45zfdxe5Z3sJ7prHbf9rXO3P4lLvYPctbeM80dvtP 3pnDp9yF7tneQvvmcZu/2lf78zhU 5i9yxv4T3T2O0/7eud68OT2H3LCft0l/ae9ZlTo 23pPvX7/rwJHbfcsI 3aW9Z33m1Gj7Len 9bs PIndt5ywT3dp71mfOTXafku6f/2uD09i9y0n7NNd2nvWZ06Ntt S7l /68MJc5O0OSWpcyexnFjfcsI JW1ukpRfv vDCXOTtDklqXMnsZxY33LCPiVtbpKUX7/rwwlzk7Q5JalzJ7GcWN9ywj4lbW6SlF /68MJc5O0OSWpcyexnFjfcsI JW1ukpRfv vDCXOTWE7a/i72PstJ2zfsHnOTpPz6XR9OmJvEctL2d7H3WU7avmH3mJsk5dfv nDC3CSWk7a/i73PctL2DbvH3CQpv37XhxPmJrGctP1d7H2Wk7Zv2D3mJkn59bs nDA3ieWEfdNImylJnelp7H6bmyTl1 /6cMLcJJYT9k0jbaYkdaansfttbpKUX7/rwwlzk1hO2DeNtJmS1Jmexu63uUlSfv2uDyfMTWI5Yd800mZKUmd6Grvf5iZJ fW7PjzJ7v12b33LSdtvsfuW75LuX7/rw5Ps3m/31rectP0Wu2/5Lun 9bs PMnu/XZvfctJ22 x 5bvku5fv vDk zeb/fWt5y0/Ra7b/ku6f71   HT0v 5l3 tK935vApyd 8y5/29c4cPiX5m3f5077emcOnJH/zLn/ar3d /flBpI cMDeNtJkSywn79BP5uK yfzTmppE2U2I5YZ9 Ih/3VfaPxtw00mZKLCfs00/k477K/tGYm0baTInlhH36iSxflT78TpI605bdPbF7lhvct54mvWOaWJ6m4Z0kdaYtu3ti9yw3uG89TXrHNLE8TcM7SepMW3b3xO5ZbnDfepr0jmlieZqGd5LUmbbs7onds9zgvvU06R3TxPXcSxPrW07YpyR1pqTNKUmdKUmdk5LUaXzdWB/eYX3LCfuUpM6UtDklqTMlqXNSkjqNrxvrwzusbzlhn5LUmZI2pyR1piR1TkpSp/F1Y314h/UtJ xTkjpT0uaUpM6UpM5JSeo0ft34 vOGNLqDfUosN7inhvUtJ ybRtpMd0n39Goa3cE JZYb3FPD pYT9k0jbaa7pHt6NY3uYJ8Syw3uqWF9ywn7ppE2013SPb2aRnewT4nlBvfUsL7lhH3TSJvpLunecjWV7mCftqQbjSR1puR03tqSbkx/wrJqj7JPW9KNRpI6U3I6b21JN6Y/YVm1R9mnLelGI0mdKTmdt7akG9OfsKzao zTlnSjkaTOlJzOW1vSjelPWFbp8NRImylJnWnL7r6F7zN3STcb32FppUNTI22mJHWmLbv7Fr7P3CXdbHyHpZUOTY20mZLUmbbs7lv4PnOXdLPxHZZWOjQ10mZKUmfasrtv4fvMXdLNxndYWunQlFhutHv2W42n 4bds7wl3VuuskSJ5Ua7Z7/VeLpv2D3LW9K95SpLlFhutHv2W42n 4bds7wl3VuuskSJ5Ua7Z7/VeLpv2D3LW9K97avp6GQ334X3KWlz tukb5j hO2/hX3Ebr4L71PS5vS3Sd8w/Qnbfwv7iN18F96npM3pb5O YfoTtv8W9hG7 S68T0mb098mfcP0Jxz/W x FPethvUtN2y/m7fwnvm1 frzIOklDdy3Gta33LD9bt7Ce bX5uvPg6SXNHDfaljfcsP2u3kL75lfm68/D5Je0sB9q2F9yw3b7 YtvGd bb7 vCEN7ySpMzXSZrqL3bOcsN9Kns4T2uJRk6TO1Eib6S52z3LCfit5Ok9oi0dNkjpTI22mu9g9ywn7reTpPKEtHjVJ6kyNtJnuYvcsJ y3kqfzxNLiEUosJ xTYvkudt9yg3tqpM2d5Cf50mKJEssJ 5RYvovdt9zgnhppcyf5Sb60WKLEcsI JZbvYvctN7inRtrcSX6SLy2WKLGcsE J5bvYfcsN7qmRNneSn RLK5UmbW4Sywn7lOzmhH3a0u7ZN99hadmRNjeJ5YR9SnZzwj5taffsm  wtOxIm5vEcsI Jbs5YZ 2tHv2zXdYWnakzU1iOWGfkt2csE9b2j375jtcvTz tuX0vrXF9sxNkjrTT T6rvyx37ac3re22J65SVJn olc35U/9tuW0/vWFtszN0nqTD R67vyx37bcnrf2mJ75iZJneknUn V/aWYUyNtpqTNqZE2UyNtGlvSjTsT9VvtKHNqpM2UtDk10mZqpE1jS7pxZ6J qx1lTo20mZI2p0baTI20aWxJN 5M1G 1o8ypkTZT0ubUSJupkTaNLenGnYnl6TujO2zP3DTSZkp2c8L 0xppM32HpfWTIxPbMzeNtJmS3Zyw/7RG2kzfYWn95MjE9sxNI22mZDcn7D tkTbTd1haPzkysT1z00ibKdnNCftPa6TN9B2uXh5/S9rcbEk37jR2 5SkzpSkzo4kdaavTg6/JW1utqQbdxq7fUpSZ0pSZ0eSOtNXJ4ffkjY3W9KNO43dPiWpMyWpsyNJnemrk8NvSZubLenGncZun5LUmZLU2ZGkzvTVWR/e0faJ7Xdzw/bMKbGc7PbNE1x3uqNtn9h Nzdsz5wSy8lu3zzBdac72vaJ7Xdzw/bMKbGc7PbNE1x3uqNtn9h Nzdsz5wSy8lu3zzBcsVewpyS1LmTWG7Y3nLCPm1JN05KLP/D8tRGzClJnTuJ5YbtLSfs05Z046TE8j8sT23EnJLUuZNYbtjecsI bUk3Tkos/8Py1EbMKUmdO4nlhu0tJ zTlnTjpMTyP/R/i8PwI//fJZYb3Jvv8Pd/il WWG5wb77D3/8pflliucG9 Q5//6f4ZYnlBvfmO1y9PH7KFttbfhq zySpMyVtbr7D1cvjp2yxveWn4ftMkjpT0ubmO1y9PH7KFttbfhq zySpMyVtbr7D1cvjp2yxveWn4ftMkjpT0ubmO1y9ftRg9y0n7FPD paTtk9O71sT13Mv7WD3LSfsU8P6lpO2T07vWxPXcy/tYPctJ xTw/qWk7ZPTu9bE9dzL 1g9y0n7FPD paTtk9O71sT1/P7EnOTWG5wb5LUmRptn3D/6b6 eX04YW4Syw3uTZI6U6PtE 4/3dc3rw8nzE1iucG9SVJnarR9wv2n /rm9eGEuUksN7g3SepMjbZPuP90X9 8PpwwN0mb72pYfzcn1rf8NHwffXXWhxPmJmnzXQ3r7 bE pafhu jr876cMLcJG2 q2H93ZxY3/LT8H301VkfTpibpM13Nay/mxPrW34avo  OuvDCXOT7OZGu7e 5YT9XYnlhH36DlfvfsTcJLu50e6tbzlhf1diOWGfvsPVux8xN8lubrR761tO2N VWE7Yp 9w9e5HzE2ymxvt3vqWE/Z3JZYT9uk7XL1 1GD3LX8avt8klhu2t5yc6F /68OT2H3Ln4bvN4nlhu0tJyf61 /68CR23/Kn4ftNYrlhe8vJif71uz48id23/Gn4fpNYbtjecnKif/3   HTnub0fd4zieUtvLfrO1y9PH7K05y z3smsbyF93Z9h6uXx095mtP3ec8klrfw3q7vcPXy ClPc/o 75nE8hbe2/Udzv9X sv/OP/881/SqtvcdpBh wAAAABJRU5ErkJggg==

最后的==很明显能够说明这里是一个base编码,盲猜base64,同时题目信息又有提示说:在解题过程中会得到一张二维码….显然这个是考的base64转图片。

通过线上的工具将base64编码转换为图片,扫码得到flag。KEY{dca57f966e4e4e31fd5b15417da63269}

19、where is flag

之前做的那个where is flag番外篇的灵感估计就是来自于这里…..

解压得到十个空的txt文件,但是这个大小却绝对不是空txt文件该有的样子,应该是在文件里隐藏了什么…

使用winhex打开里面都是用的0来占位,对应到txt里面就是一个个的空格

代码语言:javascript复制
for n in range(1,11):
    name = str(n) '.txt'
    with open(name) as f:
        print(len(f.read()),end="")

使用python脚本解出来一串

代码语言:javascript复制
98,117,103,107,117,123,110,97,48,100,48,110,103,100,97,107,97,49,125

跟之前的那组一样转化为ascll码,就能知道flagbugku{na0d0ngdaka1}

20、闪的好快啊
代码语言:javascript复制
SYC{F1aSh_so_f4sT}

十八张图真没必要……好在WPS图片有相应的功能将GIF图片一一分开,在通过QR research可以读取二维码里面的信息,得到flag。这里其实还有一个疑点,为什么这个GIF图片在PS里面打开是半张,在别的软件中打开是整张二维码呢?

文件损坏了,偶尔是会发生这种情况的,你另存为下,然后重新导出。 (百度知道如是说道,但是我还没明白……)

21、白哥的鸽子

属性中没有任何可用信息,使用formost进行分解,证明没有存有其他的文件。在使用winhex打开文件看到最后有**fg2ivyo}l{2s3_o@aw__rcl@**这一串明显是一段栅栏密码…找一个有枚举解码能力的工具进行解码就得到flag

22、放松一下吧::对于我这个手残来说这个根本不叫放松…..

0 人点赞