Home
Github
  • 👋Welcome !
  • 🚩CTF Writeups
    • SKR CTF
      • Binary
        • Auth Me 2.0
      • Misc
        • Schrodinger's Cat 2
      • Reverse Engineering
        • Nogard 3
    • osu!gaming CTF 2024
      • pwn
        • betterthanu
    • Crackmes
      • PieIsMyFav
      • Plain Sight
    • WolvCTF 2024
      • pwn
        • babypwn
    • TexSAW CTF 2024
      • rev
        • Catch The White Rabbit
      • Forensics
        • Malicious Threat
        • MalWhere?
    • SwampCTF 2024
      • Misc
        • Lost Some Magic
        • The Time Equations
    • pwnable.kr
      • Toddler's Bottle
        • fd
    • Codegate CTF 2024
      • ai
        • ai_warmup
    • Junior Crypt CTF 2024
      • Misc
        • Terms of Use
      • Forensics
        • Admin Rights
        • Confusion
      • PPC
        • l33t
    • IHack 2024 Qualification
      • DFIR
        • Happy SPLUNKing
      • Malware
        • Confusing Javascript
    • Malcore Challenge
    • Intern Task
      • SQLI
  • 📮Room/Machine
    • HTB - Sherlock
      • DFIR
        • Brutus
        • Unit42
        • Jingle Bell
  • 📚Notes
    • CTF Related
      • pwn
        • pwntools
        • Format String Vulnerability
        • Integer Overflow
        • Executable Properties
        • gdb-gef
        • Template Script
      • b2r/koth
    • Assembly Language
    • x86 Architecture
  • 🛠️Tools
    • DFIR
    • Malware Analysis
    • Essentials
  • 👽Threat Hunting
    • Intro
    • Common Tactics
    • Methodologies
    • Types of threat hunting
  • 😸whoami
    • About Me
    • Other
      • FYP
  • Archives
    • 3108 CTF
      • Kategori
        • Tugasan Utama : Warkah Untuk Perwira
          • Tugasan I : Seruan Perwira
          • Tugasan II : Tali Barut
          • Warkah Akhir
        • Web
          • Lemah
          • Pantun Pantul
          • Wantujus
          • Wantusom
        • Reverse Engineering
          • Pa+rio+ik
          • Sarawak
        • Network
          • Johan
          • Lagi-lagi Johan
        • Misc
          • 3108 CTF Town
          • Mencari Rahsia Si Dia
        • Cryptography
          • 1957bit
          • Nasihat
          • Selamat Malam
        • OSINT
          • Pertemuan Kapisata : Babak I
          • Pertemuan Kapista : Babak II
          • Pertemuan Kapista : Finale
    • Curtin CTF 2023
      • Pwn n Rev
        • Classic Bufferoverflow
        • Intro to Buffer Overflow
        • Don't Go Overboard
        • Don't Go Overboard 2
        • Let The Random Games Begin1
        • Let The Random Games Begin 2
        • Let The Random Games Begin 3
    • 1337UP LIVE CTF
      • Pwn
        • Floor Mat Store
    • HTB University CTF 2023
      • Reverse Engineering
        • Windows Of Opportunity
Powered by GitBook
On this page
  • Solution
  • Flag
  1. CTF Writeups
  2. Junior Crypt CTF 2024
  3. PPC

l33t

Last updated 11 months ago


Solution

Honestly, at the first place i don't even know what language is this hahaha

After some translation by Google, i understand that this challenge need us to convert the leet code to a normal readable text.

Let say the challenge give m4+h , we need to send math as the input.

The catch is we need to solve all 50 question in 5 seconds, i think.

So we need to subtitute those leet character to alphabet.

For example,

3 is e

! is i

+ is t

and so on..

solve.py
from pwn import *

r = remote('ctf.mf.grsu.by', 9006)
count = 0
while True:
    r.recvuntil(b'/50')
    byte_string = r.recv().strip().decode('utf-8')
    if 'grodno' in byte_string:
        print(byte_string)
    print(byte_string)

    decode_leet = []

    for byte in byte_string:
        if byte.isdigit():
            if byte == '0':
                byte = 'o'
            if byte == '1':
                byte = 'l'
            if byte == '3':
                byte = 'e'
            if byte == '4':
                byte = 'a'
            decode_leet.append(byte)
        else:
            if byte == '!':
                byte = 'i'
            if byte == '+':
                byte = 't'

            decode_leet.append(byte)

    joined_leet = ''.join(decode_leet)
    print(joined_leet)

    r.sendline(joined_leet)
    count += 1

    if count == 50:
        print(r.recv())
        print(r.recv())
        print(r.recv())
        break

Upon running the script, we retrieve a flag after completed 50 questions.


Flag

grodno{d5a410leet_1s_a_system_0f_modified_spellings++6&0k!0fda14}

🚩