0%

[[SWPU 2019]Network](https://www.nssctf.cn/problem/35)

2025-09-02 02:43By
Rsecret2
脚本编写

Problem: [SWPU 2019]Network

思路

  • 解题大致思路
    二进制提取前两位:发现是zip的文件头

后面就是写个解密脚本 (base64和32轮流)

import base64 import re def is_base64(s): """检查字符串是否为有效的base64编码""" try: # 尝试解码并重新编码来验证 if isinstance(s, str): s_bytes = s.encode('utf-8') else: s_bytes = s decoded = base64.b64decode(s_bytes, validate=True) re_encoded = base64.b64encode(decoded) # 去除填充字符后比较 return s_bytes.rstrip(b'=') == re_encoded.rstrip(b'=') except (Exception, ValueError, TypeError): return False def is_base32(s): """检查字符串是否为有效的base32编码""" try: if isinstance(s, str): s_bytes = s.encode('utf-8') else: s_bytes = s decoded = base64.b32decode(s_bytes, validate=True) re_encoded = base64.b32encode(decoded) # 去除填充字符后比较 return s_bytes.rstrip(b'=') == re_encoded.rstrip(b'=') except (Exception, ValueError, TypeError): return False def decode_recursive(encoded_data, round_count=1): """递归解码base64/base32编码的数据""" print(f"\n=== 第 {round_count} 轮解码 ===") # 尝试base64解码 if is_base64(encoded_data): try: decoded = base64.b64decode(encoded_data) print("使用 Base64 解码") print(f"解码结果: {decoded}") return decode_recursive(decoded, round_count + 1) except: pass # 尝试base32解码 if is_base32(encoded_data): try: decoded = base64.b32decode(encoded_data) print("使用 Base32 解码") print(f"解码结果: {decoded}") return decode_recursive(decoded, round_count + 1) except: pass # 如果都无法解码,返回最终结果 print("无法继续解码 - 最终结果") try: # 尝试以UTF-8解码显示 final_result = encoded_data.decode('utf-8') print(f"最终文本: {final_result}") except: print(f"最终二进制数据: {encoded_data}") return encoded_data def main(): # 读取文件内容 try: with open('./flag.txt', 'r', encoding='utf-8') as file: content = file.read().strip() except: with open('./flag.txt', 'rb') as file: content = file.read() print("原始文件内容:") print(content) # 开始递归解码 if isinstance(content, str): content_bytes = content.encode('utf-8') else: content_bytes = content final_result = decode_recursive(content_bytes) if __name__ == "__main__": main()

EXP

  • 具体攻击代码

总结

  • 对该题的考点总结
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论

加载中...