大数计算
直接用sage跑就行
然后转16进制
together
myflag1和2 base64解密 解不开
以为是网站问题 发现都解不开 找到了一个可以转为16进制的网站https://www.qqxiuzi.cn/bianma/base64.htm
\x47 \x73 \x68 \xcb \xaa \xf7 \x58 \xb2
\x2d \xca \xd0 \x26 \x6f \x81 \x66 \x1c
\x4c \xa0 \xa2 \x29 \x6e \x70 \x41 \x19
\x6c \xef \x59 \x61 \x7c \x79 \x24 \xdd
\x37 \x1c \xda \x41 \x2c \x3c \x7b \x7d
\x77 \x76 \x7e \x5f \x94 \x2f \x9f \xb5
\xd5 \x10 \xac \xff \x2d \x2a \x95 \x31
\x94 \x45 \x65 \x83 \xb4 \x6e \xba \x78
\xd2 \xf3 \x1b \x03 \x69 \x00 \xa8 \x95
\x8f \xa2 \x3b \x46 \xd5 \x09 \x97 \x63
\xdc \x9b \x73 \x6f \x15 \xe0 \x05 \xc0
\x8f \x54 \xb1 \x54 \x44 \xca \x1e \xf3
\x21 \x5e \xac \x23 \xd6 \x4f \xf2 \x5f
\xf6 \x19 \x50 \xe8 \xac \xb0 \x33 \xe5
\x42 \xd6 \xf9 \xfd \x0e \x20 \xd1 \xa1
\x26 \x66 \x66 \xf0 \x52 \xff \x68 \x39
\xe5 \x7d \x31 \x25 \x85 \x0f \x3b \x2c
\xf8 \x9c \x5a \x95 \xd8 \xa0 \xcb \x72
\xaf \xa5 \xab \xc6 \x32 \xba \x3a \x7b
\x67 \xf0 \x1a \x82 \xb7 \x41 \x23 \x43
\xb4 \xde \x5d \x98 \x71 \x20 \x7f \x55
\x4c \xf5 \xa3 \x0e \x61 \x5d \x98 \xea
\x9a \xa9 \xd5 \x48 \x4f \xe2 \xd9 \x7a
\x64 \xe0 \x2c \xd1 \x12 \xc0 \xce \x67
\x9f \x88 \x39 \x4b \x76 \x85 \x0c \x5c
\x23 \xd5 \x88 \x83 \x62 \x5d \x3f \xfb
\xc7 \xad \xbc \xa7 \xce \xad \xfa \x0a
\x3b \x04 \x74 \x0b \x1b \x11 \x1d \xa8
\x30 \x75 \x45 \x13 \x11 \x2f \x04 \x70
\x72 \xe6 \x30 \x60 \xb1 \x0a \x40 \xd9
\x9f \x74 \xb3 \x9a \x60 \x3a \x35 \xbd
\xe5 \x80 \xb7 \x92 \x80 \x6f \x0f \xd4
\x3b \xea \xd1 \x09 \x72 \x37 \x69 \x30
\x7a \x3f \x5a \xd8 \x20 \xe3 \xd4 \x75
\xa9 \x54 \xa7 \xab \xa3 \xa7 \x01 \x2a
\xe0 \x8d \xb4 \x0a \x85 \x80 \xf8 \x72
\x0b \xf3 \x1c \x46 \xb6 \xa6 \x3a \x37
\x98 \x29 \xaf \x48 \x2e \x66 \xff \x59
\x80 \xe1 \x00 \x30 \x59 \xc1 \xc4 \xea
\x8c \x75 \x53 \x67 \x07 \xd1 \xa0 \x9e
\x19 \x97 \xb6 \xdd \x59 \x5b \x27 \x4f
\xa8 \x87 \x07 \xbe \x57 \xf0 \xa5 \xdf
\xcb \xc9 \xdd \x17 \x4a \x35 \xe7 \x8d
\xac \xf7 \x3f \x7b \xce \x42 \xf4 \x7b
\xd5 \xc0 \xff \xb9 \x7c \x81 \x03 \x45
\xcf \xce \x69 \xd3 \x20 \xc8 \x04 \x86
\xe1 \x89 \x54 \x59 \xbc \x9a \x29 \xf4
\x2f \xfd \xaa \x23 \xbc \x20 \xfd \x9e
\xf0 \xd7 \xee \x26 \x3a \x68 \xba \xe7
\x92 \x48 \x5d \xe0 \xa2 \x1b \x6d \xee
\x90 \x3b \xfa \x97 \xd6 \xd9 \xba \xa7
\xc6 \xbd \x60 \x9a \xd4 \xa2 \x97 \x58
\x33 \xf7 \xd6 \x72 \xdb \xa7 \x46 \x4d
\xda \x86 \xd4 \xb3 \xa8 \xc4 \x01 \xad
\x6a \x55 \x36 \x97 \xe8 \xce \x0c \xcb
\xeb \x24 \xb3 \xed \x15 \xbc \x70 \x13
\xac \x05 \x2e \x0a \xb9 \x8c \xc1 \x51
\x22 \xbe \xa2 \x09 \xfe \x74 \xba \xca
\x61 \x95 \x11 \x13 \x7a \x3a \x19 \xf3
\xca \xbd \x7a \xf2 \x49 \xc4 \x04 \xa3
\x95 \x8f \x41 \x40 \x3b \x1d \xd8 \x2d
\xfa \x69 \x30 \xcf \x97 \x6c \xe1 \x87
\x7a \xa7 \x4a \x25 \x12 \xe9 \x32 \xfa
\x85 \x5c \x33 \x06 \x40 \x89 \xd3 \xdf
不知道有啥用
public key 发现n一样 共模攻击
可是还差c1和c2
上面两个就是c1 和c2了
把符号去掉连起来
import gmpy2
from Crypto.Util.number import long_to_bytes
import binascii
import rsa
import math
def egcd(a, b):
if a == 0:
return (b, 0, 1)
else:
g, y, x = egcd(b % a, a)
return (g, x - (b // a) * y, y)
def CMA(n,e1,e2,c1,c2):
s = egcd(e1, e2)
s1 = s[1]
s2 = s[2]
if s1<0:
s1 = - s1
c1 = gmpy2.invert(c1, n)
elif s2<0:
s2 = - s2
c2 = gmpy2.invert(c2, n)
m = pow(c1,s1,n)*pow(c2,s2,n) % n
return m
e1 = 2333
n = 14853081277902411240991719582265437298941606850989432655928075747449227799832389574251190347654658701773951599098366248661597113015221566041305501996451638624389417055956926238595947885740084994809382932733556986107653499144588614105694518150594105711438983069306254763078820574239989253573144558449346681620784979079971559976102366527270867527423001083169127402157598183442923364480383742653117285643026319914244072975557200353546060352744263637867557162046429886176035616570590229646013789737629785488326501654202429466891022723268768841320111152381619260637023031430545168618446134188815113100443559425057634959299
e2 = 23333
c1=0x477368cbaaf758b22dcad0266f81661c4ca0a2296e7041196cef59617c7924dd371cda412c3c7b7d77767e5f942f9fb5d510acff2d2a953194456583b46eba78d2f31b036900a8958fa23b46d5099763dc9b736f15e005c08f54b15444ca1ef3215eac23d64ff25ff61950e8acb033e542d6f9fd0e20d1a1266666f052ff6839e57d3125850f3b2cf89c5a95d8a0cb72afa5abc632ba3a7b67f01a82b7412343b4de5d9871207f554cf5a30e615d98ea9aa9d5484fe2d97a64e02cd112c0ce679f88394b76850c5c23d58883625d3ffbc7adbca7ceadfa0a3b04740b1b111da830754513112f047072e63060b10a40d99f74b39a603a35bde580b792806f0fd4
c2=0x3bead109723769307a3f5ad820e3d475a954a7aba3a7012ae08db40a8580f8720bf31c46b6a63a379829af482e66ff5980e1003059c1c4ea8c75536707d1a09e1997b6dd595b274fa88707be57f0a5dfcbc9dd174a35e78dacf73f7bce42f47bd5c0ffb97c810345cfce69d320c80486e1895459bc9a29f42ffdaa23bc20fd9ef0d7ee263a68bae792485de0a21b6dee903bfa97d6d9baa7c6bd609ad4a2975833f7d672dba7464dda86d4b3a8c401ad6a553697e8ce0ccbeb24b3ed15bc7013ac052e0ab98cc15122bea209fe74baca619511137a3a19f3cabd7af249c404a3958f41403b1dd82dfa6930cf976ce1877aa74a2512e932fa855c33064089d3df
m=long_to_bytes(CMA(n,e1,e2,c1,c2))
print(m)
EasyProgram
将file文件16进制
得到flagx
^异或再异或变为原来的
s=[]
t=[]
key='whoami'
for i in range(256):
s.append(i)
for i in range(256):
t.append(key[i%6])
j=0
for i in range(256):
j=(j+s[i]+ord(t[i]))%256
s[i],s[j]=s[j],s[i]
i=0
j=0
x=0
flag=''
flagx=[0x00,0xBA,0x8F,0x11,0x2B,0x22,0x9F,0x51,0xA1,0x2F,0xAB,0xB7,0x4B,0xD7,0x3F,0xEF,0xE1,0xB5,0x13,0xBE,0xC4,0xD4,0x5D,0x03,0xD9,0x00,0x7A,0xCA,0x1D,0x51,0xA4,0x73,0xB5,0xEF,0x3D,0x9B,0x31,0xB3]
for m in range(38):
i=(i+1)%256
j=(j+s[i])%256
s[i],s[j]=s[j],s[i]
x=(s[i] + (s[j]%256))%256
flag+=chr(flagx[m] ^ s[x])
print(flag)