RSA n°0 | Bases Mathématiques

- 3 mins read
Introduction Voici les différents théorèmes et application pour comprendre le chiffrement RSA Opération Modulaires L’opérateur modulo et une opération qui retourne le reste de la division euclidienne d’un nombre A par B: $a \equiv r \pmod b$ $\Rightarrow~\exists~k \in N~|~a = b*k + r$ Si r = 0 , on dit que n divise a Pgcd Le PGCD (ou gcd) de 2 nombres est le plus grand diviseur commun de ces deux nombres :
Oracle Tranquille 1&2 | Hackademint 2022 Nécessaires Python3 + Pwntools Descriptions : Challenge 1 : Nous avons trouvé un étrange service ouvert sur un de nos services hier. Complot des Illuminati? Prise de pouvoir des machines ? Opération marketing pour la sortie du prochain album de Justin Bieber ? Simple Oracle de déchiffrement RSA? Difficile de trancher. Pourriez-vous y jeter un coup d'œil? Challenge 2 : Le serveur semble avoir évolué depuis votre dernière enquête !
Introduction AES (“Advanced Encryption Standard”) est un chiffrement symétrique par blocs. En effet, il repose sur le chiffrement de données découpées en plusieurs partie. Ainsi il en existe plusieurs modes : ECB CBC CFB OFB CTR CTS … Aujourd’hui, nous allons aborder une attaque présente sur l’AES en mode ECB . Comprendre le mode ECB Comme présenté avant, ECB est un mode de chiffrement des blocs d’information. (ECB pour Electronic Code Book)
Description Ce CTF est proposé par Intrinsec , crée par Th1b4ud et est constitué de 12 Challenges. On évolue tout au long des objectifs dans un réseau afin de compromettre toutes les machines les unes après les autres. Thèmes Web Pivoting Blockchain (SmartContract) Forensic Prérequis Du temps Un vps de préférence Connaissance basique de CTF *J’ai appris beaucoup de choses pendant la compétition et c’est assez facile à comprendre en faisant les challenges en parallèles.
RustyTheClown 2 | leHack CTF 2022 Fichier(s) RustyTheClown Nécessaires IDA/Ghidra Python3 Flag lh_68eca3c515dbefd71ec8fec3849ba0083af806447d9f9f7cdca2a5cc Solution détaillée Analyse Statique Le challenge est un crackme . On nous demande un mot de passe et celui est modifié puis comparé avant de nous donner ou non le flag . Désassemblons le binaire dans IDA : Dans void rustyTheClown::main::hecc4c87ee1b9aeab() voici ce qu’on trouve d’important : std::io::stdio::Stdin::read_line::hd0723957e63cf850(); if ( &unk_52408 ) core::ptr::drop_in_place$LT$std..io..error..Error$GT$::h815d6777c4f5f9e1(*((_QWORD *)&dest + 1)); v4 = 0LL; v3 = 1uLL; _$LT$core.
Mod ctfauth | Tjctf 2022 Fichier(s) Challenge files Challenge files Nécessaires Python3 + Ida + Ghidra Flag CTF{http_headers_amiright} Solution détaillée Partie 1: Découverte du challenge Ce challenge mélange un peu de Web et une majorité de reverse. Deux fichiers sont fournis, Une configuration apache2 Un fichier .so Le lien d’un site web (Hébergé en local pour le writeup) Voici ce que nous avons quand nous nous rendons sur le site :
Introduction AES (“Advanced Encryption Standard”) est un chiffrement symétrique par blocs. En effet, il repose sur le chiffrement de données découpées en plusieurs partie. Ainsi il en existe plusieurs modes : ECB CBC CFB OFB CTR CTS … Aujourd’hui , nous allons voir une attaque présente sur l’AES en mode CBC . Comprendre le mode CBC Comme présenté avant, CBC est un mode de chiffrement d’AES . CBC pour Chain By Chain Tout son fonctionnement peut être résumé dans le schéma suivant:
Eyes Closed | Hackrocks & HackArmour CTF 2022 Necessaires Netcat Python3 (+ pwntool) Flag flag{br0p0p0p0p0_with_f0rm4t_$7ringggg} Solution détaillée Le but du challenge est d’exploiter une format string puis d’utiliser un buffer overflow pour ainsi construire une ropchain et ainsi pouvoir prendre le contrôle du binaire grâce à une attaque ret2libc. Un peu d’explication : La méthode finale est la même que dans un de mes précédents article . Ce Writeup va donc se focaliser sur la partie Blind du challenge ainsi que l’exploitation des formats strings
Factor Master | Tjctf 2022 Fichier(s) Challenge files Necessaires Python3 + Pwntools Flag tjctf{S0_y0u_r34lly_c4n_F4c7t0r_4ny7th1nG_c36f63cfe73c} Solution détaillée Le challenge se décompose en 3 parties : 3 fois le serveur va nous fournir un nombre et nous allons devoir le factoriser en 2 produits de nombres premiers ; à la manière d’un chiffrement RSA. Commencons directement avec la première étape: Etape 1 : def challenge1(): p = getPrime(44) q = getPrime(1024) n = p * q return [p, q], n On remarque tous de suite de p est bien plus petit que q .
Vacation2 | Tjctf 2022 Fichier(s) Challenge files Necessaires Netcat Python3 (+ pwntool) Flag tjctf{w3_g0_wher3_w3_w4nt_t0!_66f7020620e343ff} Solution détaillée Le but du challenge est d’exploiter un buffer overflow pour ainsi construire une ropchain et ainsi pouvoir prendre le contrôle du binaire grâce à une attaque ret2libc. Un peu d’explication : Voici la source du challenge : #include <stdio.h> #include <stdlib.h> void vacation() { char buf[16]; puts("Where am I going today?"); fgets(buf, 64, stdin); } void main() { setbuf(stdout, NULL); vacation(); puts("hmm.