攻防世界 gif
下载之后发现有104张图片,看到这种图片便想到用0、1去转换黑白照片,摩斯密码解密 ,但是因为没有空格也没有说明,所以应该不是这个
但是手动一个一个翻译好花费时间呀,于是看到了大佬的脚本,又用上了,这告诉我们得学会写脚本
white = open(r"C:\Users\浅吟梦落\Downloads\dbbc971bf4da461fb8939ed8fc9c4c9d\gif攻防世界 掀桌子.jpg", "rb").read()
black = open(r"C:\Users\浅吟梦落\Downloads\dbbc971bf4da461fb8939ed8fc9c4c9d\gif.jpg", "rb").read()
flag_b = ""
for i in range(104):
with open(r"C:\Users\浅吟梦落\Downloads\dbbc971bf4da461fb8939ed8fc9c4c9d\gif\%d.jpg"%i, "rb") as f:
text = f.read()
if text == black:
flag_b += '1'
elif text == white:
flag_b += '0'
print(flag_b)
于是就可以得到一串0,1相间得代码,拿去二进制转换字符串就可以得到flag
s1 = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
s2 = [None] * (len(s1) // 2)
for i in range(len(s1) // 2):
s2[i] = s1[i * 2:i * 2 + 2]
for n in s2:
print(chr(int(n, 16) - 128), end="")
给了一串字符串,数字0~9,字母a~f,想到了十六进制数,2个十六进制数可表示一个字节,猜想两个数对应一个ASCII码,但是任务量好大,还是得用大佬的脚本(我开始怀疑misc好多题都需要写脚本),因为ASCII码的范围是0~127,但每一个数都在128以上,所以转换之后还得减去128,再对应ASCII码
bugku easy_nbt
打开题目解压后得到好多乱七八糟的东西,level文件发现有两个,还有一个它的备份,猜想可能不简单,于是把它加压,再解压,再改后缀为文本文档,于是搜索就可得到flag
bugku 1和0的故事
from PIL import Image
MAX = 25
#二维码大小
pic = Image.new("RGB",(MAX, MAX))
str = """
0000000001110010000000000
0000000000011110100000000
0000000001110001000000000
0000000010111100000000000
0000000010101010000000000
0000000001100010100000000
0000000010101010100000000
0000000001000001100000000
1100011101110110100011000
0001000010110010010010100
0100111101000011101110011
0011110100101011001001001
1000001001100001001101000
1111000111111011100101000
1011011111001101111110111
1000110110010010101101100
1000111100111111111110111
0000000010110001100010100
0000000010010100101010001
0000000010101010100011001
0000000000100111111110010
0000000000011001011110111
0000000001001100100100001
0000000011000011011011001
0000000011010000101110101
"""
# str为获取的01片段
i=0
for y in range (0,MAX):
for x in range (0,MAX):
if(str[i] == '1'):
pic.putpixel([x,y],(0, 0, 0))
else:
pic.putpixel([x,y],(255,255,255))
i = i+1
pic.show()
pic.save("1.png")
#由于直接预览分辨率太低,所以保存下来观看
刚开始听到这个题目,还以为是不是摩斯密码,但想想是misc可能是跟图片有关的题目,但是这种数字怎么转换为python,之前几次我感觉可能会用到代码,看了wp果然用到了,又是用大佬代码的一天
bugku 白哥的鸽子
这里需要安装PIL库,但是因为我老出现安装出错,搜了说是安装pillow也可以,里面包含PIL,结果得到了一张缺的二维码
还有一种便是把它转换成excel去填充黑色就行 即可得到flag
bugku zip伪加密
下载之后得到一张图片,想到拿010editor看,在最后看到了f,l,g虽然不是连在一起的,怀疑是故意的
看到这种,就很想栅栏密码,于是拿去解密一波,于是我把后面的都拿去解密,不断从2加大栏数去试,终于得到flag
压缩源文件数据区:
bugku 简单加密
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
BC A9:最后修改文件时间
33 52:最后修改文件日期
68 E0 0E 46:CRC-32校验
95 89 06 00:压缩后尺寸(25)
6D 89 06 00:未压缩尺寸(23)
0D 00:文件名长度
00 00:扩展记录长度
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
09 00:全局方式位标记(有无加密,无加密为00 00,这里可进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
详细:BugkuCTF—赛博朋克记录关于ZIP文件文件头协议和LSB隐写_今天也要美美哒的博客-CSDN博客_bugku 赛博朋克
def caesar(text):
for i in range(len(text)):
print("{}".format(chr(int(ord(text[i])-4))),end='')
caesar('e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA')
e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA
感觉这题就是需要脑洞大一点,后两位相同(AA),联想到base64后面的==,说是凯撒和base64的加密,A在ASCII里是65,=在ASCII里是61,偏移量是4,看了wp,又是需要大佬的脚本😔
bugku 散乱的密文
运行出来的结果再放到base64里进行解码
bugku .!?
了解到了一种叫置换加密的东西,有点丑,尽力了😂
记得把@@给去了
一看题目就很像ook解密,果不其然
bugku 这不是md5
有字母,但不超过f,十六进制转字符串即可,感觉之后可以去了解一下Converter
666c61677b616537333538376261353662616566357d
bugku 一段base64
这题直接给我绕晕了,我以为很简单,结果呵呵🙂,才说着要了解Converter,这题就来了😂
base64 to text
bugku 奇怪的密码
按复制输出到输入,Unescape
Hex to text
把String.fromCharCode是JavaScript函数,要{}里的参数
Dec to text
Decode HTML
再Unicode转ASCII
a = 'gndk€rlqhmtkwwp}z'
i = 0
flag = ''
while i < len(a):
num = ord(a[i])-(i+1)
flag+=chr(num)
i+=1
print(flag)
突然天上一道雷电 gndk€rlqhmtkwwp}z
说句实话,我一开始以为又是一种我不认识的新密码,结果看了一眼wp,居然要把gndk看作像flag,这属实得脑洞大一点了,凯撒密码不是,对应ASCII码,g与f差一位,n与l差两位,d与a差三位,k与g差四位,好的,我懂,又是需要脚本的时候了
flag₧lei_ci_jiami,把奇怪的字母给去掉即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)