tags:Base家族
,Base45
,Base58
,Base62
,Base64
,Base85
,Base92
0x00. 题目
flag.txt
6L;y>cYh?)m-'>!yBH;/\>Yx9lA8liLp:cjYpb.2E;J8j_B7BjPig.[sV}ojTN!yB01.#bc5@0J}?eix70R+>T,g??Fh={+JJSFWeT]_9lA7&X3WJ0h,R2Y,(ZE?UL0e/+'#So(D$BlDTo!W6s].#b*@rrJwU+JR62^FoHYK.,R[kU3:4*$aY-)lb1Cr%sX*3^^h8naMacTl'w6_:AR/G&*][;O@BKrpGiQftn(%gPKa'6+T8{H(pcZ=K/R]'^D0Ge$YWbW=E+dW<Ulq>WS8VDdZ$VC5o8Ur3>^Kg$^1gNGQV8!Y7p/'yJWP[GLK*mRQ7W#__+-?g>T2l2Im4(QZPz.CJk[zTEU=/H_4Wk(B.>e}=:p#4CR/_-YihYA:;ioiF<]fsg^PF8O0<p0|6shu(3YYQ;\^!
0x01.WP
编写脚本,尝试先识别每次密文所包含字符的类型,再判断该套用哪种Base算法解密
不见得是效率最高的,但是最有效的
exp.py
# pip3 install py3-base92
import py3base92
import base64
# pip3 install pybase62
import base62
# pip3 install base58
import base58
# pip3 install base45
import base45
from Crypto.Util.number import *def getString(s):lstC=[] for c in s:if c not in lstC:lstC.append(c)return len(lstC)sFile="flag.txt"
with open(sFile,"r") as f:sCipher = f.read();print(sCipher)
print("密文字符:",getString(sCipher))
print("="*32)sCipher=py3base92.b92decode(sCipher).decode()
print(sCipher)
print("92密文字符:",getString(sCipher))
print("="*32)sCipher=base64.a85decode(sCipher).decode()
print(sCipher)
print("92-85密文字符:",getString(sCipher))
print("="*32)sCipher=base64.b64decode(sCipher).decode()
print(sCipher)
print("92-85-64密文字符:",getString(sCipher))
print("="*32)sCipher=base62.decode(sCipher)
sCipher=long_to_bytes(sCipher).decode()
print(sCipher)
print("92-85-64-62密文字符:",getString(str(sCipher)))
print("="*32)sCipher=base58.b58decode(sCipher).decode()
print(sCipher)
print("92-85-64-62-58密文字符:",getString(str(sCipher)))
print("="*32)sCipher=base45.b45decode(sCipher).decode()
print(sCipher)
print("92-85-64-62-58-45密文字符:",getString(str(sCipher)))
print("="*32)sCipher=base64.b32decode(sCipher).decode()
print(sCipher)
print("92-85-64-62-58-32密文字符:",getString(str(sCipher)))'''
D:\=CTF缓存=\20250915_QQ_Base>python exp.py
6L;y>cYh?)m-'>!yBH;/\>Yx9lA8liLp:cjYpb.2E;J8j_B7BjPig.[sV}ojTN!yB01.#bc5@0J}?eix70R+>T,g??Fh={+JJSFWeT]_9lA7&X3WJ0h,R2Y,(ZE?UL0e/+'#So(D$BlDTo!W6s].#b*@rrJwU+JR62^FoHYK.,R[kU3:4*$aY-)lb1Cr%sX*3^^h8naMacTl'w6_:AR/G&*][;O@BKrpGiQftn(%gPKa'6+T8{H(pcZ=K/R]'^D0Ge$YWbW=E+dW<Ulq>WS8VDdZ$VC5o8Ur3>^Kg$^1gNGQV8!Y7p/'yJWP[GLK*mRQ7W#__+-?g>T2l2Im4(QZPz.CJk[zTEU=/H_4Wk(B.>e}=:p#4CR/_-YihYA:;ioiF<]fsg^PF8O0<p0|6shu(3YYQ;\^!
密文字符: 90
================================
:2NTi=%+id<`V\2<)u>$;,oG/;FF]7<EFE9;/Ku]<(0qI9km.>@V[qXA5m5\:IR97<,FTL=%64E>#[sK@oQSd;,h4F@r6$bA9q-2:Ie<%@r#n$@khVB@5;eAA4/n2:2ENh9e^6U;b'E'9f#3p='0,k:0(,3:2=fP;c[%H<CgYE<GZV1:.@uq<bkl>:,"\-;D;ceASb7?@7PE,@l$kH;f-/&=]A.:AQL`e=u0u/;cRp1=_p]V<,5ZR@7>!)=u0Z4<\dQ?=`&+p@l$G[@n'3d;abFW@Rj=2<&-pf>$"0_A6;`4<Gku=<_,u%;Jg5O9iX&q@51eS;f6Dg<HgSh
92密文字符: 81
================================
NmJBWE1uVVFsTVBkQU43RDZzUWxHQmhjTEY5MjFtbk81dThoOE9HTm81WFV0ZTF5cTY2QThlcmlYdzR5OGRpcklrc1gza2pqdDFwNlJBM0hNSGIwM3E4WXh2NVNtNkpZSVYyUHdwUlp3NFNmVkZVN09TR0hYelROaGtCc3NBSmg2YTNreW5RZ3liSUtHYlJzTkZlaElJZ3cwV2RCYmpmc3BacFNKSDl2bGRjT2FxZWFFdXRYUnZSVHNlRmlWMU5xa1VISnlmUw==
92-85密文字符: 56
================================
6bAXMnUQlMPdAN7D6sQlGBhcLF921mnO5u8h8OGNo5XUte1yq66A8eriXw4y8dirIksX3kjjt1p6RA3HMHb03q8Yxv5Sm6JYIV2PwpRZw4SfVFU7OSGHXzTNhkBssAJh6a3kynQgybIKGbRsNFehIIgw0WdBbjfspZpSJH9vldcOaqeaEutXRvRTseFiV1NqkUHJyfS
92-85-64密文字符: 61
================================
2So1wTFAUnKDjih5mS2hZw8fP6Ufgrf9HnJC8GH3ceqkwfn4nb6hNSRduGsnMR6eg6bqz7PoY4twKudxctG2PACfsk6TJpgi4rjrQmjySdEF8krf8zXhpuoLPUh3hibzz99cLSekCTXgEhjdqyg2
92-85-64-62密文字符: 53
================================
2Z9N1B7N8CL6P09JIA2C9DH8H09UCAXY9/H9W09IR6R09*H94095OAXY9/H9QY9HG6R09+S9QY9IR6IN9$IB2Z90IACY8ZH93690*6HX7HX7
92-85-64-62-58密文字符: 34
================================
MZWGCZ33GJRWIOBRGBQTMLJYGQ4GGLJUG5SWMLJYME2WGLLEME4GKNZRMZRDENJQHB6Q====
92-85-64-62-58-45密文字符: 27
================================
flag{2cd810a6-848c-47ef-8a5c-da8e71fb2508}
92-85-64-62-58-32密文字符: 19
'''