Clasificaciones: CTF 2019 de seguridad cibernética nacional de Arabia Saudita y Omán.

Hola Habr

Del 7 al 9 de febrero de 2019, la etapa de calificación de la competencia se llevó a cabo en el sitio de cybertalents, el objetivo es buscar talentos cibernéticos para Omán y Arabia Saudita. Personas de otros países, de acuerdo con las reglas del evento, participan fuera de la competencia. Under cat - análisis de ciertas tareas.



La competencia consta de 9 tareas, cuatro de ellas son del nivel de dificultad "fácil", cuatro son "medianas", una es "difícil". Para cada tarea, se dan 50, 100 y 200 puntos, respectivamente. Las tareas también se clasifican. A continuación se muestra una solución a algunos problemas.

Volver a lo básico


Fácil, análisis web
No hay muchas opciones. No es necesario abrir un enlace desde un navegador, siempre hay una forma diferente
Dado un enlace como example.com/somepage. Cuando hace clic en él, somos redirigidos (301 movidos permanentemente) a la misma página con una barra al final, y ella, a su vez, redirige a google.com:



Probemos la solicitud POST a la segunda página:



var _0x7f88=["","join","reverse","split","log","ceab068d9522dc567177de8009f323b2"];function reverse(_0xa6e5x2){flag= _0xa6e5x2[_0x7f88[3]](_0x7f88[0])[_0x7f88[2]]()[_0x7f88[1]](_0x7f88[0])}console[_0x7f88[4]]= reverse;console[_0x7f88[4]](_0x7f88[5]) 

Pase suavemente el código a través de JS embellecer:

 function reverse(_0xa6e5x2) { flag = _0xa6e5x2['split']('')['reverse']()['join']('') } console['log'] = reverse; console['log']('ceab068d9522dc567177de8009f323b2') 

Bandera: 2b323f9008ed771765cd2259d860baec

Me encantan las imagenes


Forense digital fácil
Un hacker nos dejó algo que nos permite rastrearlo en esta imagen, ¿puedes encontrarlo?
La imagen se adjunta a la tarea:


Enlace de imagen

Solución
Abrir en el editor hexadecimal. Tenga en cuenta que el formato png tiene un avance "IEND" (49 45 4E 44). Nos fijamos en el final:

Se observa que se agrega información adicional al final del archivo. El primer supuesto es base32, porque Todas las letras en un caso. Descifrar:
FLAG{Not_Only_Base64}

Amo a este chico


Ingeniería inversa de malware medio
¿Puedes encontrar la contraseña para obtener la bandera?
Archivo Dan

Solución
Omita el archivo a través de Detect It Easy:



Abra DNSpy x86

El archivo es realmente muy pequeño y consta de un evento de usuario: Button_Click:

 string value = new string(new char[] { this.Letters[5], this.Letters[14], this.Letters[13], this.Letters[25], this.Letters[24] }); if (this.TextBox1.Text.Equals(value)) { MessageBox.Show(new string(new char[] { this.Letters[5], this.Letters[11], this.Letters[0], this.Letters[6], this.Letters[26], this.Letters[8], this.Letters[28], this.Letters[11], this.Letters[14], this.Letters[21], this.Letters[4], this.Letters[28], this.Letters[5], this.Letters[14], this.Letters[13], this.Letters[25], this.Letters[24], this.Letters[27] })); } 

Además, la cadena se declara en la clase actual:
 public char[] Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ{}_".ToCharArray(); 

Hay dos soluciones: en estática y dinámica. Primero, resolvemos por el método estático:

 # text -   >>> for i in range(len(letters)): text = text.replace(f"this.Letters[{i}]", letters[i]) >>> print(text) string value = new string(new char[] { F, O, N, Z, Y }); if (this.TextBox1.Text.Equals(value)) { MessageBox.Show(new string(new char[] { F, L, A, G, {, I, _, L, O, V, E, _, F, O, N, Z, Y, } })); } 

Cuando nos aseguramos de que el programa no sea dañino, podemos depurarlo en dinámica. Ponemos el punto de interrupción (punto de interrupción, punto de interrupción) al comienzo del método, buscamos variables locales, obtenemos la variable de valor, después de lo cual recibiremos un mensaje con una bandera.

Bandera: FLAG{I_LOVE_FONZY}

Solo otra conferencia


Fácil, información general
famosa conferencia de Ciberseguridad dirigida por OWASP en diferentes lugares
Bandera
Appsec

Source: https://habr.com/ru/post/439590/


All Articles