Bugku CTF---where is flag 2

文章目录
题目
压缩包内容为:
解题步骤 crc32爆破悬崖勒马
15个6字节大小的txt文件,以一个misc老鸟的经验来看 , 应该是crc32爆破,然后将爆破的值拼接起来作为解压密码,解压取出图片,flag就在图片里面 。
取出所有txt文件的crc32值 。
6275676B757B596F755F63616E27745F696D6167696E655F7468655F68617070696E6573735F6F665F686964696E675F7468655F666C61672121217D
逐一进行crc32爆破
爆破爆到一半,突然发现了一个问题 。首先每爆破一个crc32值就会有15种可能的值,我们只取其中一个值作为正确的值 , 所以15轮爆破下来,能得到正确的值的可能性为15^15次方 。作为misc神,不可能出这种跑cpu的垃圾题目,所以咱得换个思路 。
剖析的出题思路
重新审视一下题目
hint:这次有什么不一样呢?
联想到where is flag 系列第一题的考点size和hint:每个文件都不一样 。不妨做一个猜想,与文件的属性值有关 。于是乎拼接一下txt的文件名,
得到:,这是标准的16进制格式 。难道说与16进制有关?,16进制从哪获取呢 。

Bugku CTF---where is flag 2

文章插图
灵光一闪,芜湖 , 最开始拿到的CRC32值不就是16进制格式的嘛 。用写个16进制转字符串脚本试试
#by:3tefani丶zhou#time:2021/12/2key = '6275676B757B596F755F63616E27745F696D6167696E655F7468655F68617070696E6573735F6F665F686964696E675F7468655F666C61672121217D'flag=''for i in range(0,len(key),2):hex_str = key[i:i+2]int_str = int('0x'+hex_str,16)int_str = int_str % 128flag += chr(int_str)print(flag)
run一下脚本,拿到flag 。
的出题思路果然不是常规misc思路 , 不能靠之前的经验去下定论 , 得多花点脑子好好思考一下 。
细细思量一下的出题思路 , where is flag系列考点应该无关文件内容,主要在于打开压缩包文件的属性上,第一次是size(文件大?。?第二次是name(文件名)+CRC32,我猜第三次是(文件修改时间) 。
bugku{You_can't_imagine_the_happiness_of_hiding_the_flag!!!}
【Bugku CTF---where is flag 2】【人心不是水中月,月会常来水常在,人容易老心易变,人心再难是少年 。】