文章目录
- 哥哥的秘密
- 黄道十二官
- where is flag
- 一段新闻
哥哥的秘密
给出了一个qq,那就去看看呗
hint里面说
收集空间信息——相册——收集微博信息——相册——解题——相册——提交flag
那看看空间先
盲文:
hint:密码=时地人
旗帜存在相册里
在四川乐山
刘佳佳
00年12月26日出生
然后就看不出什么了
那就看看相册吧
三个都有密码
一个说题目不在这里,一个问哥哥的公司
都不知道怎么答
第三个问2+3+8num
结合刚才搜集到的信息试试
既然8后面是num的话,说明有8个数,那前面的2和3就不是数字了
然后盲文解密出来还是密码的提示,时地人 时间地点人物?
2是四川或者乐山?
3是刘佳佳?
8个数就是生日呗
试了一下
lsljj20001226
对了
出来一个二维码,扫了之后得到微博
买股权,打二五九四个八过去?
电话号?
【家和公司都在一个地区我干嘛不走路去】
搜乐山2598888
搜到了一个明星电缆,一个尚纬
明星电缆那个23年的网页,大概率不是
果然尚纬对了
相册里说有两种途径获取flag
先看第一张吧
属性没啥 放进010editor运行PNG模板报错
是不是有隐藏的文件啊
分别用foremost和binwalk分离得到一张图片,一个txt文件和一个有密码的压缩包
文件里说用沉默之眼查看了图片
然后说
找到密码,将密码发送给指定的邮箱,即可获得flag
用silenteye看看图片
得到密码OhG0dPleaseN0
用密码解开压缩包,得到password.txt
密文前三位,这个串后面有等于号,base64解码
解完还是base64解了又解
得到
密文前三位是IWF
那前三位呢……
把光标放在第一行末尾,却显示有214列
肉眼看的不可能有这么多列,说明存在零字符隐写
用010editor打开,确实
零宽字符加解密
获得结果
5a+G5paH5ZCO5Lik5L2N5pivT0s=
哟哟哟这不base64吗
得到
密文后两位是OK
OK好,那发邮件吧
恭喜你!这是相册“旗帜”的密码(只套了简单的4层):
23khUrNeAf1igP4PixgoUUDQLaRGGfEpPsFEd9CCKaUWfwYmG4ZmCwFVEkNNwtijxVcn6a6XkwC1ctqMLAax4aGK
放进txt里,密文长度88
不同编码的密文特征
base64,密文为4的倍数,不足4的用等号补足
base58,没有等号
base32,明文超过十个后面就会有很多等号
base16,没有等号并且数字要多于字母
base85,奇怪的字符比较多,如@#等,但是很难出现等号
base100,一堆Emoji表情
先试试base64
乱码
那再试试base58
可行
得到十六进制串
4d564c54534d4b324e5657484b5753484746574553554a3548553d3d3d3d3d3d
得到base32
MVLTSMK2NVWHKWSHGFWESUJ5HU======
base32加解密
得到base64
eW91ZmluZG1lIQ==
得到密码
youfindme!
打开相册,获得flag
做累了
第二种途径是考信息收集能力
不写了
黄道十二官
下载下来是一个有血迹的牛皮纸背景,再加上这是一道crypto题
联想到大名鼎鼎的黄道十二宫杀手
z340密码
黄道十二宫杀手
那个密码是先重排
然后在AZdecrypt运行
azdecrypt下载
所以我们也先图片转文字识别一下符号
%..@*>@?==%88%5
.@%#@@90-7$^=*@
17.(>()1@##-$40
~.*6?#%#8#=75+1
(*@*1%#>;0@5)%?
%*^=)&>=1%.+7&#
8681(+8*@@(.@@@
#*=#$3*#%.#%%.3
.*+7.7+@===+)61
然后重排
脚本来自
黄道十二宫WP
_sec = ""
with open(r"D:/黄道十二官/file.txt",encoding="utf-8") as f:
_sec = f.read()
assert len(_sec) > 0
_sec_lines = _sec.split("\n")
_line_num = len(_sec_lines)
_line_ch_cnt = len(_sec_lines[0])
_tmp = ""
for _i in range(_line_ch_cnt):
for _j in range(0, _line_num):
_tmp += _sec_lines[_j][(2 * _j + _i) % _line_ch_cnt]
_reformat_ = []
for _i in range(_line_num):
_reformat_.append(_tmp[_i * _line_ch_cnt:(_i + 1) * _line_ch_cnt])
for _key in _reformat_:
print("".join(_key))
得到重排后的结果
%%>%;.@3*.#(#0+
@#+.@)8@7@*7@@1
#5&8=.*9@=)#6#7
>0#7%%8$+@-#5?*
13@?7-+(^(*==$$
1*=+#==^4~@)8%=
%=0.*&*.+8*1*1>
@#)8@76%=@%6%..
?#1(%15@(#>%...
然后用azdecrypt解码
可以看到里面提了flag
一开始用ALPHAN当作flag,不对,变成小写alphan也不对,后来变成alphananke对了
这是啥单词啊
阿尔法男科?
笑了
where is flag
提示说每个文件都不太一样
下载下来发现都是txt,原文件很大但压缩后很小
打开一看 好家伙,都是空格啊
第一个文件就一行,但有98117列
后面的文件也都是不同的列数的空格组成的
看着这个数字,之前还先做了where if flag番外篇,很自然地想到ascii码
98 b 117 u
flag格式是bugku{}
好像对上了
一个一个文件数也行
脚本读一下也行
脚本来自
#by :3tefanie丶zhou
#time:2021/12/1
flag_list = []
for i in range(1,11):
file_name = 'C:\\Users\\82093\Desktop\\file\\'+str(i)+'.txt'
with open(file_name) as f:
file_lenth = len(f.read())
flag_list.append(file_lenth)
print(flag_list)
得到空格数
[98117, 10310, 71171, 23110, 9748, 100481, 10103, 10097, 10797, 49125]
由bugku的ascii码十进制98 117 103 107 117可知,不应该从逗号切分,而是把数字连起来,然后选择合适的地方分开
在在线转换器上试一下即可
98 117 103 107 117 123 110 97 48 100 48 110 103 100 97 107 97 49 125
也可以使用脚本
#by :3tefanie丶zhou
#time:2021/12/1
flag_str = ''
for i in range(1,11):
file_name = 'C:\\Users\\82093\Desktop\\file\\'+str(i)+'.txt'
with open(file_name) as f:
file_lenth = len(f.read())
flag_str +=str(file_lenth)
flag_list = []
flag_len = len(flag_str)
i = 0
while i<flag_len:
if flag_str[i]=='1':
flag_list.append(flag_str[i:i+3])
i +=3
else:
flag_list.append(flag_str[i:i+2])
i += 2
print(flag_list)
flag = ''
for j in flag_list:
flag +=chr(int(j))
print(flag)
一段新闻
记事本打开以后发现其实就一行,但是中间看起来很多空行
ctrl+A之后空行也没有全部变蓝,想删掉也删不掉,而且显示有很多字符
一开始还以为是零宽字符,用零宽字符解密不行
看了评论才知道是隐藏字符
隐藏字符加解密
获得
公正公正公正友善公正公正民主公正法治法治诚信民主法治法治公正爱国法治敬业平等友善敬业公正自由和谐富强公正诚信自由法治自由平等诚信平等法治敬业公正诚信平等法治平等平等诚信平等法治自由法治文明法治敬业平等诚信平等法治自由和谐富强平等诚信平等法治平等公正友善爱国公正自由公正平等法治文明法治和谐法治自由公正民主公正诚信自由公正自由平等诚信平等法治和谐公正友善敬业公正和谐公正敬业公正民主和谐民主公正敬业法治和谐公正友善法治和谐诚信平等法治诚信和谐
核心价值观解密
获得flag