当前位置:   article > 正文

Bugku CTF---where is flag 5_bugkuwhere is flag 5

bugkuwhere is flag 5

前言

tokeii的where is flag系列第五题嘎嘎上新
在这里插入图片描述

题目

在这里插入图片描述文本内容:
Gx8EAA8SCBIfHQARCxMUHwsAHRwRHh8BEQwaFBQfGwMYCBYRHx4SBRQdGR8HAQ0QFQ==

解题过程

base64解码
import base64

enc = 'Gx8EAA8SCBIfHQARCxMUHwsAHRwRHh8BEQwaFBQfGwMYCBYRHx4SBRQdGR8HAQ0QFQ=='
print(base64.b64decode(enc))
  • 1
  • 2
  • 3
  • 4

得到一串如下字节

b'\x1b\x1f\x04\x00\x0f\x12\x08\x12\x1f\x1d\x00\x11\x0b\x13\x14\x1f\x0b\x00\x1d\x1c\x11\x1e\x1f\x01\x11\x0c\x1a\x14\x14\x1f\x1b\x03\x18\x08\x16\x11\x1f\x1e\x12\x05\x14\x1d\x19\x1f\x07\x01\r\x10\x15'
  • 1
转换成二进制
enc = 'Gx8EAA8SCBIfHQARCxMUHwsAHRwRHh8BEQwaFBQfGwMYCBYRHx4SBRQdGR8HAQ0QFQ=='
text = base64.b64decode(enc)
bin_data = ["0"*(5-len(i))+i if len(i)!=5 else i for i in [bin(j).replace('0b','') for j in text]]
  • 1
  • 2
  • 3

得到如下数据:

11011
11111
00100
00000
01111
10010
01000
10010
11111
11101
00000
10001
01011
10011
10100
11111
01011
00000
11101
11100
10001
11110
11111
00001
10001
01100
11010
10100
10100
11111
11011
00011
11000
01000
10110
10001
11111
11110
10010
00101
10100
11101
11001
11111
00111
00001
01101
10000
10101
  • 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
将二进制转换为字符

循环将每一个二进制的相同位数的数据取出,再以长度7切片转换为字符

flag = ''
data1 = ''
for j in range(5):
    for i in bin_data:
        data1 +=i[j]
for k in range(0,len(data1),7):
    flag +=chr(int(str(data1[k:k+7]),2))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
脚本
import base64

enc = 'Gx8EAA8SCBIfHQARCxMUHwsAHRwRHh8BEQwaFBQfGwMYCBYRHx4SBRQdGR8HAQ0QFQ=='
text = base64.b64decode(enc)
bin_data = ["0"*(5-len(i))+i if len(i)!=5 else i for i in [bin(j).replace('0b','') for j in text]]
flag = ''
data1 = ''
for j in range(5):
    for i in bin_data:
        data1 +=i[j]
for k in range(0,len(data1),7):
    flag +=chr(int(str(data1[k:k+7]),2))
print(flag)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

python一句话解题脚本

#whereiflag.txt与该脚本放置在同一目录下
print((lambda x : "".join([chr(int(x[i:i+7], 2)) for i in range(0, len(x), 7)]))("".join([p[k] for k in range(5) for p in ["0"*(5-len(i))+i if len(i)!=5 else i for i in [bin(j).replace('0b','') for j in __import__('base64').b64decode(open('whereiflag5.txt','rb').read().replace(b'\n',b'').replace(b'\r',b''))]]])))
  • 1
  • 2

flag:

bugku{ce26f61d40fea75fc0b980d7588e}
  • 1

【喜欢周周ovo】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/443549
推荐阅读
  

闽ICP备14008679号