Torneo juvenil Strong Tennis Cup 2021 (qwtac) Jefe de arriba ddw WriteUp

Equipo ddw del jefe de arriba ESCRIBIR

  • Información del equipo

Nombre del equipo: jefe de arriba ddw

Clasificación del equipo: 24

  • resolución de problemas

 

  • proceso de resolución de problemas

01 Iniciar sesión

Contenido de la operación:

Descargue el archivo adjunto, abra y ejecute para obtener la bandera

 

Si usa su propio código de secuencia de comandos para esta pregunta, escríbalo en detalle, no se permiten capturas de pantalla

Valor de la bandera : flag{ ballena te lleva al mundo de las ballenas}

02 Lihua para

Contenido de la operación:

RE arrojado a IDA

 

Establezca un punto de interrupción, depure dinámicamente y luego obtenga los datos de una matriz

escribir código de descifrado

Si usa su propio código de secuencia de comandos para esta pregunta, escríbalo en detalle, no se permiten capturas de pantalla

less=[0x66,0x6D,0x63,0x64,0x7f,0x64,0x32,0x36,0x6a,0x6c,0x3e,0x3d,0x39,0x20,0x6f,0x3a,0x20,0x77,0x3f,0x27,0x25,0x27,0x22,0x3a ,0x7a,0x2e,0x78,0x7a,0x31,0x2f,0x29,0x29,0x16,0x40,0x44,0x45,0x12,0x47,0x47,0x41,0x1a,0x54]
print(len(menos))
sas=""
para i en rango (len (menos)):
    sas + = chr (l [i] ^ i)
imprimir (sas)

bandera值:bandera {a41be465-a50f-4124-b7ba-2766aff6baf2}

02 Cripto2

Contenido de la operación:

 En los dos conjuntos de números, e es el mismo, pero n y c son diferentes. Encuentra el máximo común divisor de n1 y n2, que es p, y luego puedes obtener q y d, para resolver m. La bandera en esta pregunta se divide en dos partes, que se deben encontrar a su vez Empalme de nuevo.

Si usa su propio código de secuencia de comandos para esta pregunta, escríbalo en detalle, no se permiten capturas de pantalla

importar gmpy2

importar binascii

e = 65537

n1 =

c1 =

n2 =

c2 =

p = gmpy2.gcd(n1,n2)

q1 = n1//p

q2 = n2//p

fi1= (p-1)*(q1-1)

phi2= (p-1)*(q2-1)

d1= gmpy2.invertir(e,phi1)

d2= gmpy2.invert(e,phi2)

m1= gmpy2.powmod(c1,d1,n1)

m2= gmpy2.powermod(c2,d2,n2)

imprimir(binascii.unhexlify(hexadecimal(m1)[2:]))

print(binascii.unhexlify(hex(m2)[2:]))

flag值:flag{afb1e6f2-9acb-efde-ad7c-246a99d8f1fd}

04 Crypto1

操作内容:

e1=49

e2=35

首先想到了共模攻击,但是不满足gcd条件(e1,e2互质)想到可以将49,35同时除以7,然后进行低加密指数攻击即可

如该题使用自己编写的脚本代码请详细写出,不允许截图

import gmpy2

from Crypto.Util.number import long_to_bytes

n=96722669749951212913756678234358651184134068407812470434435916603156818917545841439779031943800634250032106764154804309935557678512858630048212204696471487762160744924838010746445510979202735123140536599975731157563069594497905809587369126155476201977830809090473053692189364335223367147692962090288185113654598050169422517553085833257142179937154768657039042632343562454149914801329414293361879935460883633117988279426277638667508115319494914342600199690237441851088350726869553691992122821267990343643644523989413546160765907845604067031798179773495433134648132709349683621175243064236059479837244518879574919017301667066698329442453248971033564328161407342561250703168154214939772631586519304164853651

c1=66738113223447221430009739914948303261002811553064307532926788024694319846909340806982708347904688420671656410554852340732395818007063648478593071665936277836988050526188064146099581039172667768507259894363266310279948729552649788129953872816024709989260060633285022337107662251504618369065597018450927041881262189584381809106166042131798086882746986243210896131714227544235843922107304728228549916171484199199612243776469423359120753888158616202476325705252715374109256790899923317253605743212561589807498078080069511918514647943399566630574192829185904868376879831247378819590121286186417825591746918495311372015707767009078229770450338244309693800180936418605756818618708750868807720566288044943952844

c2=88330949146651042517337653740810385187361689012501792799900873279978736035790659211001047937337215121948527017022967642906632732136313750277237761910710915459733551421653259986088596828049455592613225962133163865584111828012197112528645520371075411167515961263199635568730334149461654340122507778194391601956023625429418297129608911450200836427221311442323768087256798964844787274408624548839536279704401007441198390922847003287643673183230633728790263593607595427088882078742699027563601046309308221108391158848644822374865676056755011459026909057983805069264236657111115914570543103494726584296335044897998794251877515750910330960179539465060133592380802344398038815679281272098815068185059127533110716

e1=7

e2=5

def ext_euclid(a,b):

       if b == 0:

              return 1,0,a

       else:

              x,y,q = ext_euclid(b, a % b) #gcd(a,b)=gcd(b,a%b)

              x,y = y, (x-(a//b)*y)

              return x,y,q

def same_mod(n,e1,e2,c1,c2):

       s,t,q = ext_euclid(e1,e2)

       m=(gmpy2.powmod(c1,s,n)*gmpy2.powmod(c2,t,n)) % n # 大数运算

       flag = m

       # 爆破

       i = 0

       while 1:

              if gmpy2.iroot(m + i * n,7)[1]==True:

                     print(long_to_bytes(gmpy2.iroot(m+i*n,7)[0]))

                     break

              i += 1

       return flag

if __name__ == '__main__':

       same_mod(n,e1,e2,c1,c2)

flag值:

flag{8ac9f9e3-82ba-ff7e-ac7b-235a02d891ef}

06 拼图

操作内容:

拿到附件先解压,原图先不用看,直接看分割后的。

因为分割图片,所以我们可以通过时间排列 (分割文件的保存的时间排序。)

可以看到分割的顺序是从左到右依次分割。整理含字符串的图片。

 

 

整理出来有如下片段:

能拼成这样子,提交该flag:   flag{Hamsters_are_so_cute}   都提示不对。

 

发现了这个东西,可能是个感叹号什么的?还是i呢?我想了一下,按照英语语法,i有点不合适。

可能是感叹号,那就交了试试flag{Hamsters_are_so_cute!} 发现不对

但是我发现文件中还有很多没有拼接,比如

 

¡Intenta agregar algunos más! ¡Enviemos y encontremos 3! Así es, obtén la bandera 

bandera值: bandera{¡¡Los hámsteres_son_tan_bonitos!!!}

Supongo que te gusta

Origin blog.csdn.net/Moxin1044/article/details/120731533
Recomendado
Clasificación