首页 > 其他分享 >Crypto_BUUCTF_WriteUp | 还原大师

Crypto_BUUCTF_WriteUp | 还原大师

时间:2023-11-15 22:48:44浏览次数:38  
标签:BUUCTF Python WriteUp Crypto range CSDN m3 字符串 ord

题目

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

分析

看了下 MD5 的加密流程,手算得算到下辈子。字符串的未知大写字母只有三位,尝试爆破。

import hashlib

m = "TASC?O3RJMV?WDJKX?ZM"

# range() 创建整数列表
# ord() 返回参数的ASCII或Unicode值
for i in range(ord('A'), ord('Z') + 1):
    # .replace() 替换指定字符串为目标字符串,可限定次数
    # chr() 返回ASCII或Unicode值对应参数
    m1 = m.replace('?', chr(i), 1)
    for j in range(ord('A'), ord('Z') + 1):
        m2 = m1.replace('?', chr(j), 1)
        for k in range(ord('A'), ord('Z') + 1):
            m3 = m2.replace('?', chr(k), 1)
            # hashlib.md5() 对字符串进行md5加密
                # .encode() 编码 hashlib的要求
            # .hexdigest() 返回十六进制摘要字符串
            # .upper() 字符串所有字母大写
            m3 = hashlib.md5(m3.encode('utf-8')).hexdigest().upper()
            if (m3[:4] == "E903" and m3[7:11] == "4DAB" and m3[15:17] == "08" and
                    m3[22:24] == "51" and m3[25:27] == "80" and m3[29:31] == "8A"):
                print(m3)

(写习惯了 C 写 Python 是真难受啊

Flag

flag{E9032994DABAC08080091151380478A2}

参考

MD5 算法-深流的小刘-知乎
python中如何遍历26个英文字母?三种办法-cbyzdr-CSDN
Python range() 函数用法-菜鸟教程
Python ord() 函数-菜鸟教程
Python中修改字符串单个字符的方法-MengYiKeNan-CSDN
Python Python的ord()函数的相反函数是什么-极客教程
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码-点亮~黑夜-CSDN
python3中digest()和hexdigest()区别-可爱的喵酱丶-CSDN
Python字母大小写的转换(两种方法)-舍得斋-CSDN

标签:BUUCTF,Python,WriteUp,Crypto,range,CSDN,m3,字符串,ord
From: https://www.cnblogs.com/Guanz/p/17835016.html

相关文章

  • cryptography hash 算法使用
    安装pipinstallcryptography使用方法fromcryptography.hazmat.primitivesimporthashesdigest=hashes.Hash(hashes.SHA256())#digest=hashes.Hash(hashes.SHA3_256())#digest=hashes.Hash(hashes.SM3())digest.update(b"abc")print(digest.finalize())......
  • Buuctf-Crypto-之深夜刷题部分wp
    萌萌哒的八戒首先下载好附件,解压,是一幅猪图,图的下方是一串看不懂的字,百度输入关键词猪、密码,可知这是猪圈密码,手撸得WHENTHEPIGWANTTOEAT大写不对,换成小写。whenthepigwanttoeat传统知识+古典密码首先下载好附件,解压:小明某一天收到一封密信,信中写了几个不同的年份辛卯,癸巳......
  • Web_XCTF_WriteUp | pure_color
    题目分析给了个纯白png图片,看来是图片隐写题。按照隐写题的解题思路,依次进行了:打开图片属性寻找flag:未果用010Editor打开文件代码寻找flag及查看文件的开头/结束标志:没有找到flag,标志也分别是png文件的开头/结束标志,没有异常因为这两天重装了虚拟机,所以先用......
  • Web_BUUCTF_WriteUp | [ACTF2020 新生赛]Include
    题目分析F12打开查看器,只有一个php文件,URL为http://9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81点tips看看,啥也妹有,URL为http://9862c108-f9d1-4746-aeb0-848c1e0d8147.node4.buuoj.cn:81/?file=flag.php完全没有头绪……又能学新东西了!找到一篇大......
  • buuctf——crypto(1-20)
    1.发现是bese加密,直接使用在线工具解开2.MD5加密,直接使用在线工具解开3.url加密,直接使用在线工具解开4.使用ctf工具随波逐流乱杀。乱杀5.摩斯密码,直接ctf工具随波逐流乱杀6.根据提示,张三的缩写,加上生日刚好满足flag的格式7.凯撒变异密码,使用脚本直接弄出来了8.看到太熟悉了......
  • Web_BUUCTF_WriteUp | Havefun
    题目分析用鼠标划了半天,好像不能撸(F12打开控制台,在查看器里看到一条PHP注释$cat=$_GET['cat'];echo$cat;if($cat=='dog'){echo'Syc{cat_cat_cat_cat}';}分析一下注释:$cat=$_GET['cat'];:变量cat获得变量_GET收集的来自method="get"的表单中的值。e......
  • 2023强网拟态crypto-一眼看出
    1、题目信息一眼看穿查看代码 fromCrypto.Util.numberimport*fromsecretimportflagimportgmpy2flag=b''r=getPrime(6)a=1100124079130849656541177384550975435259748146428827269932523139547213714461077464537281214967514136060046964049287422354......
  • 强网新拟态 Reverse Writeup
    fisher真正的验证逻辑在main函数的catch块里,不过走到需要满足输入的sha1的值等于2e95a5c5f9643df668d3965a6cdf19541bc0496b,后面发现没影响直接调进去就行。分析一下,加密流程如下:table='ghijklpqrstuvwxyzABCabcDEFdef0123GHI4567JKL+/MNOmnoPQRSXYZ8TUVW9'flag=i......
  • crypto
    1.打开为一大串的乱码又这窜代码的特征我们可以联想到brainfuck解密运用brainfuck在线解密工具即可得到flag2.打开文件发现需要密钥可以使用archer工具对该文件进行爆破即可得到密码4132根据文件名后缀为dat可判断为serpent加密只需运用serpent在线解密工具即可得到fla......
  • CTF show——crypto 7-萌新_密码5
    crypto7用txt.文件格式打开是ook加密,所以需要用brainfuck工具:https://www.splitbrain.org/services/ookcrypto8同上一题一样crypto9打开ARCHPR进行爆破,得到密码4132,得到的是一个.dat文件,可以猜想是serpent加密,之后再用Serpent在线工具解码及可得flagcrypto10一打......