BJDCTF 2nd--TARGZ

审题,tar没用,不需要爆破

BJDCTF 2nd--TARGZ_第1张图片

下载附件得到tar.gz压缩包

查看16进制的时候发现是PK的头,对应的题目的提示tar不好使(就是不tar压缩的)

那么解压密码既然不用爆破,16头尾也没啥发现就试试用文件名去解压

发现可以解压但是得到的还是压缩包,继续重复操作...

当时我解了半小时(时间沉dedao默成本导致...)一直以为下一个就出了..

累了去水水群吐槽,这是什么千层饼..很快得到出题人的回复

行吧上脚本

import zipfile
import os
import re
#不知道为啥zip加了close还是提示正在操作,便无法边解压边删上个压缩包,有解决方法请师傅不吝赐教
def del_old_zip(file_path):
    os.remove(file_path)

def un_rar(file_name,pwd=None):
    try:
        zip = zipfile.ZipFile(file_name)
        zip.extractall(pwd=pwd.encode())
        zip.close()
    except Exception as e :
        print(e)
        print('Fail:'+file_name)
        return False
    else:
        print('Success')
        return True

def listdir():  
    file_dir="C://Users/Administrator/Desktop/buuoj/"
    list_= [i for i in os.listdir(file_dir) if 'gz'in i]
    list_.sort(key=lambda fn: os.path.getmtime(file_dir+fn) if not os.path.isdir(file_dir+fn) else 0)
    return list_[-1]

if __name__ == '__main__':
    for i in range(300):
        file = r"".join(listdir())
        pwd = file[:-7]
        un_rar(file,pwd)


 

最后解压出来的就是flag

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

 

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的

 

你可能感兴趣的:(CTF)