当前位置: 首页 > news >正文

BUUCTF 还原大师 1

 

题目描述:

我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB???08???51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交

解题思路:

1、仔细阅读题目,明白我们需要还原完整的MD5码,作为flag提交。

2、缺失的字符为大写字母,可以通过枚举来筛选出正确的MD5码。

3、通过使用python写出代码来猜出神秘字符串的原本模样,代码逻辑是将TASC?O3RJMV?WDJKX?ZM这串字符串中的问好使用字母从AAAAA代替然后转换为32位的MD5,将得出的MD5前4位与E903比配如果相同则输出直到5个问好最后都是ZZZZZ

设计程序:

import hashlibmystery_md5 = "E903???4DAB????08?????51?80??8A?"
for i in range(65, 91):for j in range(65, 91):for k in range(65, 91):#print(f"TASC{chr(i)}O3RJMV{chr(j)}WDJKX{chr(k)}ZMd", end=";")# 计算候选字符串的MD5哈希值plaintext = f"TASC{chr(i)}O3RJMV{chr(j)}WDJKX{chr(k)}ZM"md5_hash = hashlib.md5(plaintext.encode('utf8')).hexdigest().upper()#注意大小写#print(md5_hash[:4])# 比较MD5码的部分if md5_hash[:4] == mystery_md5[:4]:print(plaintext)print(md5_hash)

两秒就出来了

 flag{E9032994DABAC08080091151380478A2}

http://www.lryc.cn/news/123762.html

相关文章:

  • 自定义hook之首页数据请求动作封装 hooks
  • 2023上半年京东手机行业品牌销售排行榜(京东数据平台)
  • lodash之cloneDeep()源码阅读笔记
  • 算法模版,今天开始背
  • 新的 Python URL 解析漏洞可能导致命令执行攻击
  • react项目做的h5页面加载缓慢优化(3s优化到0.6s)
  • 如何修复损坏的DOC和DOCX格式Word文件?
  • UI设计师个人工作感悟5篇
  • Java堆、栈、内存的知识
  • tp6 RabbitMQ
  • java Spring Boot yml多环境拆分文件管理优化
  • 【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • 【LeetCode每日一题】——41.缺失的第一个正数
  • typedef函数代码段解释以及部分Windows下的系统函数
  • Typora常用手册
  • 互联网发展历程:从网线不够长到中继器的引入
  • 【Java】异常处理 之 使用SLF4J 和 Logback
  • C++11并发与多线程笔记 (1)
  • 07_Hudi案例实战、Flink CDC 实时数据采集、Presto、FineBI 报表可视化等
  • ceph相关概念和部署
  • Android Jetpack Compose 中的分页与缓存展示
  • 无名管道 / 有名管道(FIFO)
  • Three.js纹理贴图
  • 1+X Web前端开发职业技能等级证书建设方案
  • Rx.NET in Action 第二章学习笔记
  • 【软件工程 | 模块耦合】什么是模块耦合及分类
  • OCT介绍和分类
  • 07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)
  • SpringBoot复习:(41)配置文件中配置的server开头的属性是怎么配置到Servlet容器中起作用的?
  • 深入解读网络协议:原理与重要概念