# -*- coding: utf-8 -*- import urllib # 导入 urllib 库,用于处理 URL 编码(例如解码) # 打开文件 'log' 以读取模式 ('r'),并将文件内容作为文件对象 'file' with open('log', 'r') as file: ans = "" # 用于保存结果的字符串 # 读取文件所有行,返回一个列表,其中每个元素是文件中的一行 req = file.readlines() # 截取文件内容的指定范围,从第 361 行到第 1842 行(Python 索引从 0 开始) req = req[361:1842] # 遍历上述行内容(从第 361 行到第 1842 行) for i in range(len(req)): # 判断当前行与前一行时间差是否小于 3(时间差以小时为单位) # 'req[i-1].split('[01/Mar/2019')[1][7:9]' 提取时间戳的小时部分 if abs(int(req[i - 1].split('[01/Mar/2019')[1][7:9]) - int(req[i].split('[01/Mar/2019')[1][7:9])) < 3: # 从前一行中提取 '=binary(' 后面的内容,获取前 3 个字符 tmp = req[i - 1].split('=binary(\'')[1][0:3] # 如果提取到的内容后面包含 ')' if '\')' in tmp: # 只取前一个字符 ans += tmp[0] else: # 否则,直接添加提取的前 3 个字符 ans += tmp # 打印出通过 urllib.unquote 解码后的结果,解码后的字符串是 URL 编码的内容 print(urllib.unquote(ans)) 运行得flag flag{50f1ea7cf1544106e3555c4cc2cf4087}