Bugku-杂项部分题目WP

Bugku-杂项部分题目WP

Bugku-MISC-论剑

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

把图片放进010发现有一串二进制先转ASCII码获得一个关键词,但不知道是什么东西

然后通过搜索FFC2来修改JPEG图片的高度,把00改为01

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里猜出应该是一个7z压缩包文件头,应该被出题人改了文件头
7z的文件头是377ABCAF271C,然后修改为正确头部后并且修改文件后缀名为7z

在这里插入图片描述
发现了有一个图片,但是这个压缩包被加密了,但是回想一下,开始的时候用二进制转ASCII码有一串东西,猜一猜是不是密码?
好家伙,果然是密码

在这里插入图片描述
但是这张图片跟刚才的那个也是图片高度被修改了,继续用winhex或者010修改红色框的00改为01,保存
在这里插入图片描述
在这里插入图片描述
然后把两张这样的图片的flag数据合在一起
flag{666C61677B6D795F6E616D655F482121487D}
然后去提交,发现不正确,再仔细看了一下flag里面的是十六进制的数值,我们去转换一下ASCII码
在这里插入图片描述flag就这样出来了

flag{my_name_H!!H}

Bugku-MISC-图穷匕见

用winhex打开,结果发现下面有一大串16进制数据,FF D9是JPG文件尾
在这里插入图片描述
然后复制这些数据
用Notepad++打开,并用这个软件里面的一个插件进行转换 HEX—》ASCII码在这里插入图片描述
看上去有点像坐标点
再看一下图片属性信息
在这里插入图片描述
会画图吗???

进行一番的替换,把括号和逗号都替换掉
在这里插入图片描述
Linux系统里面有一个专门画图工具,根据坐标数值画图 —— gnuplot
在这里插入图片描述
扫描二维码得出flag
flag{40fc0a979f759c8892f4dc045e28b820}

Bugku-MISC-Convert
在这里插入图片描述

在这里插入图片描述
又是一大串2进制,用脚本或者转换工具转一下为十六进制
在这里插入图片描述
把这些十六进制转换为ASCII码
在这里插入图片描述
可以看出这是rar文件
复制下来,用010以十六进制导入,并另存为以rar后缀的压缩包,解压获得一张图片
在这里插入图片描述
在这里插入图片描述
看一下图片属性信息
在这里插入图片描述
Base64解密获得flag
在这里插入图片描述

flag{01a25ea3fd6349c6e635a1d0196e75fb}

Bugku-MISC-听首音乐
在这里插入图片描述

直接用Audacity打开就可以发现是摩斯密码

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

在这里插入图片描述
直接解码获得flag
5BC925649CB0188F52E617D70929191C

Bugku-MISC-好多数值

在这里插入图片描述
在这里插入图片描述
我猜这应该是RGB数值

借用大佬的一个脚本“根据RGB数值自动因式分解画图.py”

网上好多大佬解这题用的脚本是已经定义好X和Y,而我找的大佬脚本是自动进行因式分解,自动生成,可用性应该高一点

from PIL import Image

def Crack(n):#yinshufenjie
    flag = []
    for each in range(2,int(n **0.5)+1):
        if(n % each == 0):
            print(each,int(n/each))
            flag += [(each,int(n/each))]
    if len(flag) == 1:return flag[0]
    else:
        choice = input("Which group to select(0-%s):"%(len(flag)-1))
        return flag[int(choice)]
def Paint(X,Y,listrgb):#Draw according to string list
    pic = Image.new("RGB",(X, Y))
    i=0
    for x in range (0,X):   
        for y in range (0,Y):
            temp = listrgb[i].split(',')
            pic.putpixel([x,y],(int(temp[0]),int(temp[1]),int(temp[2])))
            i = i+1
    pic.show()
    pic.save(r"/root/flag%s.png"%(X))
listrgb = open(r"/root/1.txt").readlines()
X,Y = Crack(len(listrgb))
Paint(X,Y,listrgb)
Paint(Y,X,listrgb)

在这里插入图片描述
flag{youc@n’tseeme}

Bugku-MISC-很普通的数独(ISCCCTF)
在这里插入图片描述
附件有一个zip里面有25张图
在这里插入图片描述
在这里插入图片描述
全是数独图片

然后仔细看了一下1.png 5.png 21.png,好像是二维码的定位符,但是顺序乱了

在这里插入图片描述
然后把三张图片顺序调一下,5调到21,21调到1,1调到5

调完后,用记事本将信息记录下来,有数字的用1代替,没有的用0代替。

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

然后用py脚本把以上01转换为二维码
在这里插入图片描述
扫描二维码得出了一串base64编码
在这里插入图片描述

Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9

经过多次base64解码得出flag

在这里插入图片描述
flag{y0ud1any1s1}

Bugku-MISC-PEN_AND_APPLE
在这里插入图片描述

这题原题的附件是一个rar压缩包里面有一个视频的,但是这个网站给的附件是一个test.mp4文件,应该被人修改了,所以就没做出来,不过可以在网上看到大概的解题思路

这题的flag为SYC{Hei_hei_hei}

Bugku-MISC-color

在这里插入图片描述
在这里插入图片描述
有7张图片,看过每张图片的属性信息没可疑线索,用stegsolve打开

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

根据7张图片给出的英文字母组成Make Me Tall ——使我变高???
还以为这个是一个flag,结果提交不了
那么 意思是让我变高 那么我们就在010或者winhex里面把它们都变高看看

在这里插入图片描述

然后发现每个图片最底层都是黑白相间的方块,看起来像是二进制。
使用记事本将黑白块用01记录下来。
在这里插入图片描述
仔细观察这几个二进制,发现第一列连起来1100110转换刚好对应的ASCII码是f

然后用大佬们的一个脚本跑一下,把每一列打竖的二进制进行转换


c1 = '11111111010111101111'
c2 = '11111011111110111111'
c3 = '00001100101010110001'
c4 = '01001010010000001101'
c5 = '11010011011101010111'
c6 = '10011011011010110110'
c7 = '00111001101101111101'
 
flag = ''
 
for i in range(0,20):
    c = c1[i]+c2[i]+c3[i]+c4[i]+c5[i]+c6[i]+c7[i]
    flag += chr(int(c,2))
 
print flag

在这里插入图片描述
flag{Png1n7erEs7iof}

Bugku-MISC-怀疑人生

在这里插入图片描述
下载附件是一个zip文件自己添加一下后缀名为zip并解压
在这里插入图片描述
里面有三个文件,当我想解压ctf1.zip文件时要我输入密码。。。。。这。。

在这里插入图片描述
直接用我的专用破解压缩包加密神器PRTK,直接秒破,密码为password
在这里插入图片描述
在这里插入图片描述
这个是base64编码

在这里插入图片描述
得到 Unicode编码,直接Unicode转字符串

在这里插入图片描述
得出flag的第一部分

然后用010打开ctf2.jpg看一下

在这里插入图片描述
居然找到一个zip头,马上把这个文件的后缀名jpg改为zip

在这里插入图片描述
得出这串东西,然后查了一下资料发现是ook编码
直接拿去解码,传送门https://www.splitbrain.org/services/ook
在这里插入图片描述
在这里插入图片描述
然后得到大佬的提示,这个是base58编码
传送门https://www.jisuan.mobi/pbHzbBHbzHB6uSJx.html

在这里插入图片描述
得出flag的第二部分

ctf3.jpg这个看上去是一个模糊的二维码,直接用 QR Research直接可以扫描出
在这里插入图片描述
得出flag的最后一部分

即flag为flag{hackermisc12580}

Bugku-MISC-红绿灯
在这里插入图片描述
是一个gif的红绿灯图片,用stegsolve打开发现有1168张图片合成的一张gif图片

在这里插入图片描述
然后用py脚本把1168张图片分离出来,脚本如下

在这里插入图片描述
发现有一些图片是没有灯的,即灰色那些,红绿灯只有三种颜色,所以就把灰色(即没颜色的)删了,花了我15分钟才慢慢的删完,累死我了

删除完之后,在文件夹里面调节大小的时候,突然发现最左侧和最右侧的一列颜色都是一样的,推测最右侧的一列为空格(即黄灯),因为ASCII码128位,最左侧的为0,得出绿色为0,红色为1,留下中间的7列。

在这里插入图片描述
一共455张图片,65组7位二进制数,红灯为1,绿灯为0,将图片信息记录下来

11001101101100110000111001111111011101000011011000110011011010011100110110011101111111100000110100111100110111110110100111010011101000110011110111011101000110001011000011011101011111111010001100001011111111010011100100110100110011011001100110001110001110111111110011011010011001100110011111010011110011011111111011111010000110011110111010111111111001011000011101011011111011010011100100110011101111101100001110101111010011100110110001110010001100111111101

然后用py脚本把二进制转换为字符串

在这里插入图片描述
flag{Pl34s3_p4y_4tt3nt10n_t0_tr4ff1c_s4f3ty_wh3n_y0u_4r3_0uts1d3}

Bugku-MISC-不简单的压缩包
在这里插入图片描述

下载附件zip,修改一下文件名称

在这里插入图片描述
居然有密码。。。。

在这里插入图片描述

用010看了一下,发现这里有一个50 4B 03 04的十六进制zip文件头,而且还看到了50 4B的文件尾,应该是一个隐藏的zip文件吧

在这里插入图片描述
在Kali用binwalk工具查看到这个压缩包里面有一个flag.swf文件和隐藏压缩包里面有一个tingshuo.txt文本

直接用foremost分离,但是依然里面还是有密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后用PRTK进行压缩包密码爆破,发现有文本的压缩包被秒破出来,密码是0,但是swf文件的那个压缩包还是没跑出来

在这里插入图片描述
打开文本,看到了一句日语

在这里插入图片描述
小白不懂日语,拿去翻译一下

在这里插入图片描述
密码是50位?what?
然后根据全球知名解压缩工具bandizip给出的爆破密码的时间表

在这里插入图片描述
密码50位,对应的应该是11.zip的,但是密码它有50位???暴力破解能解到地老天荒,密码会不会在属性里?然后看了一下,什么线索都没有

在这里插入图片描述
然后来通过猜测一下密码,如果是50位混合组合密码,肯定想都别想了,要不试试用相同符号、数字、字母密码?

在这里插入图片描述
每一种都是相同的50个字符

打开ARCHPR,跑一下刚才制作的字典直接得出密码为50个a

在这里插入图片描述
这里敲一下黑板

在这里插入图片描述
因为我电脑没有安装什么flash播放器,所以运行不了flash动画的文件,但是我安装了一个可以查看swf源码的工具JPEXS Free Flash Decompiler,直接放进去进行代码审计

在这里插入图片描述
然后通过该工具的查找功能,查一下有没有flag或者Key等等关键词字

在这里插入图片描述
在这里插入图片描述
发现有这些文本里面有有K字符,然后逐个逐个的看

结果在第171个文本里面有一个K值,仔细看了一下是十六进制

在这里插入图片描述
然后十六进制转ASCII码得出flag

在这里插入图片描述
flag{jpexs7reeflash}

Bugku-MISC-一枝独秀
在这里插入图片描述
在这里插入图片描述
打开压缩包发现有一张png图片,于是就打开png图片一看,这。。。。

在这里插入图片描述
用010或者winhex打开看一下

在这里插入图片描述
这不就是一个zip压缩包么?为何要改png格式。。。。。
于是把png改为zip,继续解压缩

在这里插入图片描述
啊。。。。。这。。。压缩包居然有密码?

打开压缩包仔细看了一下

在这里插入图片描述
发现第81张图片的CRC32跟其他的不一样,有猫腻

然后直接用上我最喜欢破解压缩包密码的神器PRTK

在这里插入图片描述
密码秒破为12345678

解压玩之后打开第81张图片,看上去很普通,再看一下图片的属性

在这里插入图片描述
Flowers 这应该是一些线索吧

然后用stegsolve看一下

在这里插入图片描述
啊。。。。这。。有点像二维码,但是中间一大朵花挡住了,再翻几下也没有突破新的线索

然后前段时间打强网杯遇到了一题杂项题里面也是有一张jpg图片隐写了,当时是使用了JPHS这个工具进行查看jpg的隐写文件

打开软件后导入图片

在这里插入图片描述

然后点击Seek

在这里插入图片描述
输入刚刚在图片属性里面的flowers

补充一点如果不知道密码的话,要使用stegbreak进行爆破,命令如下

在这里插入图片描述
在这里插入图片描述
然后另存为隐写文件

在这里插入图片描述
然后用010或者winhex打开隐写文件

在这里插入图片描述
又发现了50 4B 03 04 的十六进制,这就是zip的文件头
在这里插入图片描述
立马修改后缀名

解压后发现一个txt文本

在这里插入图片描述
在这里插入图片描述

这。。。。。。佛语的意思不懂,再网上找到了这样的一个网站能进行佛语解码
网址http://www.keyfc.net/bbs/tools/tudoucode.aspx

把佛曰那句话复制进去

在这里插入图片描述
点击参悟佛所言的真意,然后有一串东西
H-hDs10OZL3lhIZZbeRSbbbVRZNm32W2X33mGm3Txt999RdV9hx0

然后回想一下,题目给的提示

提示:翻过四个栅栏即可得到flag

就是栅栏解密
在这里插入图片描述
但是解完后又来一串东西。。。。感觉有点像是base64编码

然后用notepad++里面又一个插件可以解码

在这里插入图片描述
在这里插入图片描述
或者也可以来这里进行解码,传送门https://base64.us/
在这里插入图片描述
得出flag{CoolyouGotItNowYouKnowTheFlag}

Bugku-MISC-小猪佩奇
在这里插入图片描述
这题有点捞,网上的人都没人写WP,害得我解了几个小时找方法,难受一批

下载完后有一张png图

在这里插入图片描述
属性就大概这样子吧,没啥好看的,只发现是32位深度

在这里插入图片描述
首先来讲png图⽚,png图⽚是⼀种⽆损压缩的位图⽚形格式,也只有在⽆损压缩或者⽆压缩的图⽚(BMP)上实现lsb隐写。如果图像是jpg图⽚的话,就没法使⽤lsb隐写了。原因是jpg图⽚对像数进⾏了有损压缩,我们修改的信息就可能会在压缩的过程中被破坏。

用stegsolve打开,发现Green plane 0 和Blue plane 0,两张图那个小猪里面好像有一个二维码的线条,那就证明了这个题目是lsb加密图片隐写

在这里插入图片描述
在这里插入图片描述
然后,看到出题人写了一点提示

在这里插入图片描述
去下载一个根据出题人说的字典

传送门:
https://github.com/danielmiessler/SecLists/blob/master/Passwords/darkweb2017-top1000.txt

但是python脚本的话我看到另外一个大佬写的WP

在这里插入图片描述
在这里插入图片描述
这位大佬提供的python用出题人说的字典进行爆破lsb隐写脚本,但是可能我太菜了,悟性不够高,运行了好几次这个脚本都是出现这种情况

在这里插入图片描述
一直说我没有lsb库,我就用pip来安装,结果pip和pip3都是试过,依然不行,就这个问题花了我几个小时查资料还是没能解决,我就没使用这位大佬的脚本了。

在这里插入图片描述
在这里插入图片描述
然后我就用github上提供的lsb脚本
https://github.com/livz/cloacked-pixel

根据脚本的使用教程,和出题人的提示说密码是纯7为字母,并且字典建议倒着用效果会更好,然后经过一番的排除操作

在这里插入图片描述
结果发现了正确密码就是raiders,中文意思是掠夺者,那应该代表就是获得flag的行为吧

在这里插入图片描述
然后就爆破出一张二维码

在这里插入图片描述
通过扫描二维码得出flag

在这里插入图片描述
flag{37d9704c-9752-434c-8891-ee15e1800490}

Bugku-MISC-好多压缩包
在这里插入图片描述
打开压缩包里面有68个加密的压缩包

在这里插入图片描述
然后随便点开一个压缩包看了一下发现被加密的压缩包里面有一个大小为4字节的文本

在这里插入图片描述
科普一下CRC32碰撞
在这里插入图片描述
然后可以用CRC32碰撞脚本进行爆破

由于前段时间打强网杯的时候遇到了一题MISC题目,里面也需要CRC32碰撞,但是那个脚本只能单独的一个一个压缩包进行碰撞,虽然速度是秒破,但是一个一个的搞太麻烦了

在这里插入图片描述
然后在网上找到了大佬们的WP,他们写的CRC32碰撞脚本是直接把68个压缩包连在一起进行碰撞,然后把碰撞出来的内容保存在out.txt文本里面

这里有一点要注意,如果用的是python2来运行的话就必须要加上0xffffffff,如果是用python3就不用加
在这里插入图片描述
代码如下:

import zipfile
import string
import binascii
 
def CrackCrc(crc):
    for i in dic:
        for j in dic:
            for p in dic:
                for q in dic:
                    s = i + j + p + q
                    if crc == (binascii.crc32(s) & 0xffffffff):
                        #print s
                        f.write(s)
                        return
 
def CrackZip():
    for I in range(68):
        file = 'out' + str(I) + '.zip'
        f = zipfile.ZipFile(file, 'r')
        GetCrc = f.getinfo('data.txt')
        crc = GetCrc.CRC

        #print hex(crc)
        CrackCrc(crc)
 
dic = string.ascii_letters + string.digits + '+/='
 
f = open('out.txt', 'w')
CrackZip()
f.close()

并且把脚本放在123文件夹里面

在这里插入图片描述
在这里插入图片描述
因为68个数量有点多,所以碰撞的话有点久

打开out.txt发现有一串base64编码

在这里插入图片描述
于是用notepad++打开,并且用里面的插件进行解码

在这里插入图片描述
在这里插入图片描述
Flag.txt fix the file and get the flag ----里面有一个flag的文本,提示说要修复文件并且 获得flag

然后我就用010打开这个base64解码后的文本

在这里插入图片描述
发现文件末尾是C43D7B00400700,不知道是什么东西,百度查了一下大佬们的WP说是rar文件尾,于是自己觉得不是很相信,就随便用一个rar文件导入进去看一下

在这里插入图片描述
结果还真的是rar文件尾,然后我猜应该是要我们修复文件头吧

在这里插入图片描述
这个526172211A0700是rar的文件头

在这里插入图片描述
只要我把rar头添加上去就可以了

在这里插入图片描述
另存为rar文件

在这里插入图片描述
打开压缩包即可获得flag
flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}

Bugku-MISC-一个普通的压缩包
在这里插入图片描述
下载附件zip.rar

然后解压里面的flag.rar压缩包出现了这种情况

在这里插入图片描述
Secret.png ???我猜应该里面有一张图
但是这样是解压出来是没有图片的,然后把刚刚题目的附件放进010或者winhex看了一下发现是50 4B 03 04 明显是zip文件头

在这里插入图片描述
直接修改这个文件的后缀名,我这里改成是aaa.zip

再次用winrar解压flag.rar,还是出现这种情况

在这里插入图片描述
文本就只有一句话 flag is not here

然后把这个flag.rar文件放进010查看

在这里插入图片描述
文件头和尾都正常,然后查了一些资料终于发现是这题涉及到rar文件的格式编码
详情参考https://blog.csdn.net/vevenlcf/article/details/51538837

如果用WinRAR的修复功能,则只能修复rar文件,不能把这个图片复原,rar格式编码中:

在这里插入图片描述
然后根据这个编码的解释再来分析一下这个rar文件

在这里插入图片描述
红色框圈住74就是rar里面的flag.txt文本头部编码,这个文本的十六进制一直从00到65
才结束,这样可以判断出74是在rar文件的格式编码的一种文件数据块头部,里面包含文
件大小、文件名、信息等等

由此可见rar里面还有一张名为Secret.png的图,在flag.txt结束的地方就是下一个块开始
的地方,所以png文件的头部编码为74,我们修改过来即可:

在这里插入图片描述
保存后就可以正常的用winrar解压缩

在这里插入图片描述
图片终于出来了
但是很遗憾这个图片是一张空白图片,很不甘心,直接把图片放进010或者winhex查看

在这里插入图片描述

这个47 49 46 38 很明显是GIF的文件头,直接改后缀名

在这里插入图片描述
但是改了后缀还是空白图,然后我就用ps打开这个文件,发现有两个白色图层

在这里插入图片描述
然后进行每个图层单独分离为png文件,共两个

在这里插入图片描述
在这里插入图片描述
然后我用stegsolve分别打开这两个图
在这里插入图片描述
然后把两个图进行合拼
在这里插入图片描述
这个时候扫描得不出什么信息,二维码的定位符都不完整,左上角的就不说了,没法补上,右上角可以补上黑方块:

在这里插入图片描述
然后使用二维码查看工具QR Research直接扫描就可以得到flag

在这里插入图片描述
flag{yanji4n_bu_we1shi}

Bugku-MISC-2B
在这里插入图片描述
在这里插入图片描述

一个这样的文件不知道是什么东西,用010打开看了一下是PNG文件

在这里插入图片描述
改后缀,打开图片,这。。。。。。。看过图片属性没东西

在这里插入图片描述
用binwalk看到了一个zip文件隐藏了

在这里插入图片描述
用foremost进行分离

在这里插入图片描述
但是在Kali解压出现了错误

在这里插入图片描述
在window系统里面进行解压,发现它要我输入密码

在这里插入图片描述
现在只有一种想法,就是这个是一个伪加密ZIP,因为在win打开要输入密码,在Kali打开直接报错,如果正常有密码的话,在两种系统都能正常要你输入密码的,为了验证是不是伪加密,我使用010进行修改一下试试

在这里插入图片描述
结果发现蓝色选中的那两个十六进制的数为01 00,这个就是伪加密,如果想要把伪加密移除的话要改为00 00

在这里插入图片描述
直接解压成功

打开里面发现有一张为B2.png的图片,看上去和题目给的附件的图片好像是一样的,然后我去看一下两张图的属性信息对比一下

在这里插入图片描述
结果发现两站图就是除了名字和大小不一样之外,其他的属性都一样的,我猜应该是图片盲水印攻击,因为前段时间打强网杯的时候也是遇到这种情况,所以有了经验

盲水印攻击脚本下载传送门https://github.com/linyacool/blind-watermark

然后把两张图都放在这个文件夹里面, 用python2环境跑一下,注明一下B2是无水印图片,2B是有水印图片

在这里插入图片描述
在这里插入图片描述
这里要吐槽这个flag,真的恶心,那个F后面的看上去真的很像一个0,但却是一个大写O,那个前括号后面的是i的大写不是L的小写

NUST{I_10v3_2B_FOr3v3r}

Bugku-MISC-QAQ
在这里插入图片描述
下载两个附件

在这里插入图片描述
文本是一串base64编码拿去解码一下
在这里插入图片描述
有点是乱码

然后把QAQ附件放进去010分析
在这里插入图片描述
看到chr、ord、range、QAQ.py、main、name基本可以判断是个pyc文件

添加后缀名为pyc文件后用uncompyle6进行pyc反编译

pip install uncompyle6 #安装

在这里插入图片描述
得到QAQ.pyc反编译后的tt.py脚本

在这里插入图片描述
然后根据以上的加密脚本进行编写一个解密脚本pp.py

#!/usr/bin/env python
#-*- coding:utf-8 -*- 
# Author: virgin-forest
# Time: 2019-03-22 12:00:56
# Describe: 

def decryt(key,plain):
	cipher = ''
	for i in range(len(plain)):
		cipher += chr(ord(key[i % len(key)]) ^ ord(plain[i]))
	return cipher

def getPlainText():
	plain = ''
	with open('cipher.txt') as (f):
		while True:
			line = f.readline()
			if line:
				plain += line
			else:
				break
	return plain.decode('base_64')

def main():
	key = 'LordCasser'
	plain = getPlainText()
	clear = decryt(key,plain)
	with open('clear.txt','w') as (f):
		f.write(clear)

if __name__ == '__main__':
	main()

得到clear.txt文本是一些明文

在这里插入图片描述
翻译一波

在这里插入图片描述
发现一个单词STEGOSAURUS——剑龙??
于是百度一波
在这里插入图片描述
然后去下载stegosaurus脚本
传送门https://github.com/AngelKitty/stegosaurus

执行这个脚本,分离出flag

在这里插入图片描述
flag{fin4lly_z3r0_d34d}

科普一下这个stegosaurus的知识和用法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Bugku-MISC- apple(这题不会做,拿大佬WP)

在这里插入图片描述
附件是一个dmg格式的文件,dmg是MacOS上的压缩镜像文件,相当于在Windows上常见的iso文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
N1CTF{APFS_a_N3xt_30_Year_Filesystem}

Bugku-MISC-妹子的陌陌
在这里插入图片描述
在这里插入图片描述
打开图片,这。。。。。。。。不敢多想其他,还是赶紧把它做出来吧

在这里插入图片描述
用binwalk查看图片有一个rar文件并用foremost把它分离

在这里插入图片描述
居然有密码,爆破密码没啥用,然后仔细看了一下图片有一句话,试试这句话是不是密码,结果居然成功了。解压密码竟然是图片中的“喜欢我吗.”

在这里插入图片描述

里面有一个文本,文本内容就是这样

在这里插入图片描述
发现有摩斯密码,直接解码,得出的字符好像是一条网址
HTTP://ENCODE.CHAHUO.COM/

在这里插入图片描述
打开网站居然是一个在线加密解密网站,收藏一波

把网址后面的base64作为密文粘进去,填上key,可解出明文:(注意:这个是AES解密)

在这里插入图片描述
将解出的明文和网址前半部分网址合起来
即http://c.bugku.com/momoj2j.png

得到一个图片链接,下载后发现是个反色的二维码:
在这里插入图片描述
使用stegsolve取反后用QR Research可扫出flag:

在这里插入图片描述
在这里插入图片描述

KEY{nitmzhen6}

Bugku-MISC-就五层你能解开吗
在这里插入图片描述
下载附件
在这里插入图片描述
解压居然要密码

在这里插入图片描述
然后根据题目的指示

提示:第一层:CRC32 碰撞

第二层:维吉尼亚密码

第三层:sha1 碰撞

第四层:md5 相同文件不同

第五层:RSA

先直接用CRC32碰撞脚本跑一波
脚本传送门https://github.com/theonlypwner/crc32

依次碰撞三个txt文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从结果上猜测最有可能的组合是:_CRC32_i5_n0t_s4f3

使用这个密码成功解压7z,再解压里面的7z,看到一个keys.txt,里面有10000个密钥,一个ciphertext.txt,里面有一段密文。还有个tips.txt:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
写个python批量解密维吉尼亚密码:

from pycipher import Vigenere
keys = []
cipher = 'rla xymijgpf ppsoto wq u nncwel ff tfqlgnxwzz sgnlwduzmy vcyg ib bhfbe u tnaxua 
ff satzmpibf vszqen eyvlatq cnzhk dk hfy mnciuzj ou s yygusfp bl dq e okcvpa hmsz vi 
wdimyfqqjqubzc hmpmbgxifbgi qs lciyaktb jf clntkspy drywuz wucfm'
with open('./keys.txt', 'r')as f:
    keys = f.readlines()
plain = ''
with open('./plain.txt', 'w')as f:
    for i in keys:
        i=i.replace('\n','')
        plain = Vigenere(i).decipher(cipher)
        f.write(plain+'\n')

在这里插入图片描述
从得到的10000个明文中,搜索“Vigenere”,找到唯一一条有意义的明文:

在这里插入图片描述

THEVIGENERECIPHERISAMETHODOFENCRYPTINGALPHABETICTEXTBYUSINGASERIESOFDIF
FERENTCAESARCIPHERSBASEDONTHELETTERSOFAKEYWORDITISASIMPLEFORMOFPOLYAL
PHABETICSUBSTITUTIONSOPASSWORDISVIGENERECIPHERFUNNY

从最后可以得到下一个压缩包的密码是“vigenere cipher funny”,需要全部改为小写。

在这里插入图片描述
解压得到一个加密7z和一个txt:
在这里插入图片描述
写个python跑一下:

import string
import hashlib
printable = string.printable
for k1 in printable:
    for k2 in printable:
        for k3 in printable:
            for k4 in printable:
                key = k1 + '7' + k2 + '5-' + k3 + '4' + k4 + '3?'
                sha1 = hashlib.sha1(key.encode('utf-8'))
                flag = sha1.hexdigest()
                if '619c20c'and'a4de755'and'9be9a8b'and'b7cbfa5'and'e8b4365' in flag:
                    print(key)

挨个试跑出来的结果:

在这里插入图片描述
逐个测试最后发现“I7~5-s4F3?”是真正的密码。解压后看到一个7z和一个txt:

在这里插入图片描述
然后从网上找到了这样的两个软件:
在这里插入图片描述
输出分别是:
在这里插入图片描述
在这里插入图片描述

经尝试Goodbye World :-(是正确的密码。
这里涉及MD5的一个漏洞知识,可以自己科普一下——MD5碰撞生成器

解压之后得到一个pem密钥文件,和一个enc密文文件。

在这里插入图片描述
下载RSA攻击脚本
传送门https://github.com/Ganapati/RsaCtfTool

安装脚本的步骤:
git clone https://github.com/Ganapati/RsaCtfTool.git
sudo apt-get install libgmp3-dev libmpc-dev
pip3 install -r “requirements.txt”
python3 RsaCtfTool.py

运行以下命令:

python3 RsaCtfTool.py --publickey ‘./rsa_public_key.pem’ --uncipherfile ‘./flag.enc’

在这里插入图片描述
flag{W0rld_Of_Crypt0gr@phy}

猜你喜欢

转载自blog.csdn.net/weixin_47598409/article/details/109010457