-
-
[原创][HUBUCTF 2022 新生赛]ezPython
-
发表于: 2023-9-18 20:08 5627
-
附件链接:https://wwvc.lanzouj.com/iIqq218z5x0d
给了一个pyc文件
利用命令将pyc转换为py文件
打开py文件
这段代码是Python中的字符串和编码转换操作。
首先,password是一个字符串,使用encode()方法将其转换为字节类型(bytes),采用UTF-8编码方式进行转换。接下来,tmp使用bytes_to_long函数将字节序列转换为一个长整型数值。
然后,tmp的值通过先使用Base58编码,再使用Base64编码的方式进行转换。base58.b58encode()和base64.b64encode()分别是对应的编码函数。
最后,使用decode()方法将编码后的结果转换为字符串类型。使加密后的值也就是ans等于M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw==
整个过程就是将密码转换为经过Base58编码和Base64编码的字符串,以ans变量保存结果。
解码过程:
先将ans进行base64解密,再进行base58解密
再用python跑出bytes字节类型转换为长整型数值
password为HUBUCTF@1405
根据题目描述,flag为md5(password),一般取md5加密都是32位小写
故flag:
uncompyle6 ezPython.pyc > ezPython.py
uncompyle6 ezPython.pyc > ezPython.py
# uncompyle6 version 3.9.0
# Python bytecode version base 3.7.0 (3394)
# Decompiled from: Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: .\ezPython.py
# Compiled at: 2022-09-03 23:53:44
# Size of source mod 2**32: 444 bytes
from
Crypto.Util.number
import
*
import
base64, base58
password
=
open
(
'password.txt'
,
'r'
).read()
tmp
=
bytes_to_long(password.encode(
'utf-8'
))
ans
=
base64.b64encode(base58.b58encode(
str
(tmp))).decode()
print
(
"I've forgot my password,could you please help me find the password?"
)
if
ans
=
=
'M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw=='
:
print
(
'You get the password!'
)
else
:
print
(
'Wrong! try again'
)
# okay decompiling ezPython.pyc
# uncompyle6 version 3.9.0
# Python bytecode version base 3.7.0 (3394)
# Decompiled from: Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: .\ezPython.py
# Compiled at: 2022-09-03 23:53:44
# Size of source mod 2**32: 444 bytes
from
Crypto.Util.number
import
*
import
base64, base58
password
=
open
(
'password.txt'
,
'r'
).read()
tmp
=
bytes_to_long(password.encode(
'utf-8'
))
ans
=
base64.b64encode(base58.b58encode(
str
(tmp))).decode()
print
(
"I've forgot my password,could you please help me find the password?"
)
if
ans
=
=
'M0hBajFITHVLcWV6R1BOcEM5MTR0R0J3eGZVODV6MTJjZUhGZFNHQw=='
:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: