GDOUCTF Crypto WP

babylua

local flag = '' --这里是你要逆推出的flag
local md5 = require("md5")

math.randomseed(os.time())

local function randomStr(len)
    local rankStr = ""
    local randNum = 0
    for i = 1, len do
        randNum = math.random(1, 2)
        if randNum == 1 then
            rankStr = rankStr .. string.char(math.random(65, 90))
        elseif randNum == 2 then
            rankStr = rankStr .. string.char(math.random(97, 122))
        end
    end
    return rankStr
end

local seed = randomStr(4)
local key = md5.sumhexa(md5.sumhexa(seed))  #md5 encrypto
print(key:sub(1,10))

secret = {}

for i = 1, #flag do
    secret[i] = string.byte(flag:sub(i,i)) + string.byte(key:sub(i,i))
end

for i, v in ipairs(secret) do
    io.write(v, ' ')
end

print()

--程序运行输出结果:
--b5e62abe84
--200 161 198 157 173 169 199 150 105 163 193 175 173 194 135 131 135 225
--请你分析代码,逆向推出flag

题目给了两个lua脚本,其中md5.lua是md5加密库,可以去文件里打开链接就可以知道。

分析代码,给了个4位的seed字符串,并用seed进行了两次md5加密得到key,secret是flag的ascii值加上key的ascii值,题目已经给出key的前十位和secret,因为secret的长度是18,那么flag的长度也是18,那么自需要求出key就可以得到flag了。也很简单,爆破seed

s=string.ascii_letters
key='b5e62abe84'
for i in s:
    for j in s:
        for z in s:
            for t in s:
                h=i+j+z+t
                h1=hashlib.md5(h.encode()).hexdigest()
                h2=hashlib.md5(h1.encode()).hexdigest()
                if h2[:10]==key:
                    key=h2[:18]
                    print(key)
                    exit()
key='b5e62abe84bc8afbfd'
sercet=[200 ,161, 198, 157, 173, 169, 199, 150, 105, 163, 193, 175, 173, 194, 135, 131, 135, 225]
for i in range(len(key)):
    print(chr(sercet[i]-ord(key[i])),end='')

Absolute_Baby_Encrytpion

简单换表

a='abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=`~{}[]|:;"\'<>,.?/'
b='!1)vm+q0c](}[85$*i>#<?o^-_hwe9gzd~=xj:4b`l3t6sn;\'rkp"&/\\2.%|,@{u7ya'
key='+}!q")hiim)#}-nvm)i-$#mvn#0mnbm)im#n+}!qnm8)i-$#mvnoc#0nz<$9inm!>-n1:1-nm8)i-$~c58n!}qhij#0[noic##m8nc8n?!8c}w!n]>&'
flag=''
for i in key:
    index=b.index(i)
    flag+=a[index]
print(flag)

Magic of Encoding

这题总感觉是杂项题放错地方了

首先得到一堆base64加密后的密文,先把密文base64解密一下保存在文档里

用sublime text软件(其他软件也可以,但是要可以进行字符替换的)打开两个文件(密文文件和解密文件)。

这题思路是将假的flag删除

解密文件可以看到有三种flag:flag{Xd_fake_flag_xD}、find_me_if_you_can、flag{not_the_correct_flag_lol}。

将这三个flag分别base64加密一下:ZmxhZ3tYZF9mYWtlX2ZsYWdfeER9、ZmluZF9tZV9pZl95b3VfY2Fu、ZmxhZ3tub3RfdGhlX2NvcnJlY3RfZmxhZ19sb2x9

然后在密文文件中将这三个base64加密后的字符串删除,得到

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sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0K29kaW5nLnR4dFVUDQAHTZEzZE6RM2CmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KRNkTNkdXgLAAEE9QEAAAQUAAAAUEsCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KCmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0KFBgAAAAABAAEAYwAAAIoAAAAAAA==

 再用上面的base64解密一下,得到

flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}

flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}
PK.........T.V........).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô(%..... .Magic of Enco`¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇФing.txtUT
..M.3dN.3dM....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B.3dux....õ........KËIL
flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}

flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}
¯Î0(0.¯4(.ÏÉÌ6N./ÉH.÷4).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô)IÏL.7/ÊLήå..PK...eúZ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЧ...%...PK...........T....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B.V.eúZ'...%..... .....
flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}

flag{not_the_correct_flag_lol}
flag{not_the_correct_flag_lol}
....¤.....Magic of En`).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô().±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô).±..í¹½Ñ}Ñ¡.}.½ÉÉ..Ñ}.±..}±½±ô+oding.txtUT
..M.3dN.3`¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇÐ ¦fÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇЦfÆ.w¶æ÷E÷F.Uö6÷'&V7EöfÆ.uöÆöÇФM.3dux....õ........PK....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B....YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B...YÞÛ.Ý.Ý..WØÛÜ..XÝ.Ù..Y×Û.Û.B..........c.........

然后又出现了flag,继续之前的操作

假的flag:

flag{not_the_correct_flag_lol}

flag{not_the_correct_flag_lol}

注意:这个要在上下留一行

base64加密:CmZsYWd7bm90X3RoZV9jb3JyZWN0X2ZsYWdfbG9sfQpmbGFne25vdF90aGVfY29ycmVjdF9mbGFnX2xvbH0K

然后在删除,最后得到

UEsDBBQACAAIAAZUilYAAAAAAAAAACUAAAAVACAATWFnaWMgb2YgRW5jb2RpbmcudHh0VVQNAAdNkTNkTpEzZE2RM2R1eAsAAQT1AQAABBQAAABLy0lMr84wKDCOrzQojc/JzDZOiS/JSI33NUnPTI43L8pMzq7lAgBQSwcIjmX6WicAAAAlAAAAUEsBAhQDFAAIAAgABlSKVo5l+lonAAAAJQAAABUAIAAAAAAAAAAAAKSBAAAAAE1hZ2ljIG9mIEVuY29kaW5nLnR4dFVUDQAHTZEzZE6RM2RNkTNkdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAABAAEAYwAAAIoAAAAAAA== 

 然后用CyberChef网站转换保存为zip压缩包

 打开压缩包就是flag了

Math Problem

#!/usr/bin/env sage
import secret
from Crypto.Util.number import *

p, q = getPrime(512), getPrime(512)
e, n = 0x10001, p * q
c = pow(bytes_to_long(secret.flag), e, n)
print(f"{e = }\n{n = }\n{c = }")

a, b = getPrime(512), getPrime(512)
E = EllipticCurve(GF(p), [a, b])
G = E.lift_x(ZZ(getPrime(64)))
print(f"{a = }\n{b = }\ny = {G.xy()[1]}")

'''
e = 65537
n = 79239019133008902130006198964639844798771408211660544649405418249108104979283858140199725213927656792578582828912684320882248828512464244641351915288069266378046829511827542801945752252863425605946379775869602719406340271702260307900825314967696531175183205977973427572862807386846990514994510850414958255877
c = 45457869965165575324534408050513326739799864850578881475341543330291990558135968254698676312246850389922318827771380881195754151389802803398367341521544667542828862543407738361578535730524976113729406101764290984943061582342991118766322793847422471903811686775249409300301726906738475446634950949059180072008
a = 9303981927028382051386918702900550228062240363697933771286553052631411452412621158116514735706670764224584958899184294505751247393129887316131576567242619
b = 9007779281398842447745292673398186664639261529076471011805234554666556577498532370235883716552696783469143334088312327338274844469338982242193952226631913
y = 970090448249525757357772770885678889252473675418473052487452323704761315577270362842929142427322075233537587085124672615901229826477368779145818623466854
'''

很明显椭圆曲线的题型,该题自需要求出模数p。

有限域下的椭圆曲线方程是y^2=x^3+a*x+b\pmod p,那么就有kp=x^3+a*x+b-y^2,所以可以构造copper还原x,然后按照kp=x^3+a*x+b-y^2去得到kp(若是负的取绝对值),和n进行gcd就可以得到p了。

from Crypto.Util.number import *
import gmpy2

e = 65537
n = 79239019133008902130006198964639844798771408211660544649405418249108104979283858140199725213927656792578582828912684320882248828512464244641351915288069266378046829511827542801945752252863425605946379775869602719406340271702260307900825314967696531175183205977973427572862807386846990514994510850414958255877
c = 45457869965165575324534408050513326739799864850578881475341543330291990558135968254698676312246850389922318827771380881195754151389802803398367341521544667542828862543407738361578535730524976113729406101764290984943061582342991118766322793847422471903811686775249409300301726906738475446634950949059180072008
a = 9303981927028382051386918702900550228062240363697933771286553052631411452412621158116514735706670764224584958899184294505751247393129887316131576567242619
b = 9007779281398842447745292673398186664639261529076471011805234554666556577498532370235883716552696783469143334088312327338274844469338982242193952226631913
y = 970090448249525757357772770885678889252473675418473052487452323704761315577270362842929142427322075233537587085124672615901229826477368779145818623466854
R.<x> = PolynomialRing(Zmod(n))
f=x**3+a*x+b-y**2
f=f.monic()
x0 = f.small_roots(X=2^64, beta=0.4,epsilon=0.01)[0]
x=int(x0)
kp=pow(y,2)-b-a*x-x**3
p=gmpy2.gcd(kp,n)
q=n//p
d=gmpy2.invert(e,(p-1)*(q-1))
m=pow(c,d,n)
print(long_to_bytes(int(m)))

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值