← Back to list

WriteUp BroncoCTF 2025 : All My Solve Challenges Cryptography

By WanZKey

WanZKey · 2025-02-17 17:23 · 0 claps · 3.8 min read
#broncoctf-2025 #ctf-writeup #cryptography #prng #ctfcrypto
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3 🔒 · Cybersecurity

WriteUp BroncoCTF 2025 : Challenges Cryptography

By WanZKey

1. Accross the Tracks

Deskripsi Soal

Deskripsi Soal

Summary:

Pada tantangan Cryptography kali ini, saya diberikan sebuah attachment yang berisikan sebuah cipher Rail Fence, yang dimana isi ciphertext ini merupakan flag yang telah dienkripsi menggunakan cipher tersebut.

Attachment :

Samddre··ath·dhf@_oesoere·ebun·yhot·no··oso·i·a·lr1rcm·iS·aruf·toibadhn·nadpikudynea{l_oeee·ch·oide·f·n·aoe·sae·aonbdhgo_so·rr.i·tYnl·s·tdot·xs·hdtyy'·.t·cfrlca·epeo·iufiyi.t·yaaf·.a.·ts··tn33}i·tvhr·.tooho···rlmwuI·h·e·iHshonppsoleaseecrtudIdet.·n·BtIpdheiorcihr·or·ovl·c··i·acn·t·su··ootr·:b3cesslyedheIath·e·_

*Langkah-Langkah Penyelesaian:

  1. identifikasi Jenis Cipher & Key Cipher
  2. Cari decoder online
  3. Ganti Key menjadi 10
  4. Decode Cipher.*

Solution:

1. Idenfikasi Jenis Cipher & Key Cipher

Bisa kita analisa berdasarkan deskripsi pada tantangan ini:

Break Down Isi Deskripsi Soal

Break Down Isi Deskripsi Soal

Penjelasan:

# Mengetahui Jenis Cipher
Pada kalimat "a deer just ran onto the tracks in a zig-zag pattern" dengan
clue "zig-zag" ini saja kita dapat mengetahui bahwa ini merupakan Cipher "Rail Fence"
karena ini yang menjadi ciri khas pada cipher tersebut.

# Mengetahui Key Cipher
Pada kalimat "After crossing my tenth track tracing the deer" ini merupakan
clue besar mengenai Kunci/Key untuk mendecode cipher tersebut, karena
ada kalimat "Tenth track" jika diartikan ke Bahasa Indonesia artinya adalah
"Laju kesepuluh" bisa kita asumsikan keynya adalah 10.

# Ringkasan
Berdasarkan analisis sebelumnnya bisa diketahui jenis cipher beserta key pada 
isi deskripsi tantangan tersebut adalah "Rail Fence Cipher" dan key nya adalah
"10". 

2. Decode Cipher

Berikut hasil decode saya mengenai cipher pada tantangan ini, disini saya menggunakan tools decoder online yakni **Cryptii**.

Decode Cipher

Decode Cipher

Flag: bronco{r@1l_f3nc3_cip3rs_r_cool}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —-

2. Rahhh-SA

Deskripsi Soal

Deskripsi Soal

Summary:

Pada tantangan Cryptogprahy ini mengimplementasikan classic RSA sederhana dengan modular aritmetic, akan tetapi jika kita tidak teliti membaca attachment yang diberikan soal maka kita akan kebingungan kenapa nilai “faktor p = -811" ini maksudnya adalah red herring artinya tetap 811, author soal sengaja mengelabui peserta agar kebingungan mengenai tantangan ini.

Attachment :

e = 65537
n = 3429719
c = [-53102, -3390264, -2864697, -3111409, -2002688, -2864697, -1695722, -1957072, -1821648, -1268305, -3362005, -712024, -1957072, -1821648, -1268305, -732380, -2002688, -967579, -271768, -3390264, -712024, -1821648, -3069724, -732380, -892709, -271768, -732380, -2062187, -271768, -292609, -1599740, -732380, -1268305, -712024, -271768, -1957072, -1821648, -3418677, -732380, -2002688, -1821648, -3069724, -271768, -3390264, -1847282, -2267004, -3362005, -1764589, -293906, -1607693]

p = -811

Langkah-Langkah Menyelesaikan Tantangan Ini: 1. Asumsikan $p = 811$. 2. Hitung $q = n / p = 3429719 / 811 = 4229$. 3. Periksa bahwa $p$ dan $q$ adalah bilangan prima. 4. Hitung totient function: 5. Cari private key $d$ dengan menggunakan modular inverse: 6. Dekripsi ciphertext dengan rumus klasik RSA: 7. Ubah hasil dekripsi ke bentuk karakter ASCII untuk mendapatkan flag.

Solution:

Berikut script untuk menyelesaikan tantangan ini:

Script Solve:

//WanZKey
from Crypto.Util.number import long_to_bytes
from sympy import mod_inverse

e = 65537
n = 3429719
c = [-53102, -3390264, -2864697, -3111409, -2002688, -2864697, -1695722, -1957072, -1821648, -1268305, -3362005, -712024, -1957072, -1821648, -1268305, -732380, -2002688, -967579, -271768, -3390264, -712024, -1821648, -3069724, -732380, -892709, -271768, -732380, -2062187, -271768, -292609, -1599740, -732380, -1268305, -712024, -271768, -1957072, -1821648, -3418677, -732380, -2002688, -1821648, -3069724, -271768, -3390264, -1847282, -2267004, -3362005, -1764589, -293906, -1607693]

p = 811
q = n // p
assert p * q == n

phi = (p - 1) * (q - 1)

d = mod_inverse(e, phi)

flag = ""
for i in c:
    if i < 0:
        i = n + i
    m = pow(i, d, n)
    flag += long_to_bytes(m).decode(errors='ignore')

print(f"Flag: {flag}")

Hasil Script Solve

Hasil Script Solve

Flag: bronco{m4th3m4t1c5_r34l1y_1s_qu1t3_m4g1c4l_raAhH!}

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —-

3. Mid PRNG (Up Solve)

Deskripsi Soal

Deskripsi Soal

Summary:

Pada tantangan Cryptography ini mengimplementasi metode “PRNG(Psudorandom Number Generator) dan Xor Cipher” akan tetapi pada metode PRNG yang digunakan ini sangat lemah, hanya mengandalkan metode LGC (Linear Congruential Generator) sederhana yakni Perkalian dan Modulo saja, sehingga kita hanya memerlukan nilai awal untuk menebak seluruh outputnya.

Attachment:

import bad_prng
import random

flag = ""

output = []
random = bad_prng.generate_seed()
for c in flag:
    random = bad_prng.rand_word()
    output.append(random ^ ord(c))

print(bytes(output).hex())

Penjelasan Isi File Attachment:

  • **bad_prng.generate_seed()** menghasilkan seed awal untuk PRNG.
  • Setiap karakter flag dienkripsi dengan **bad_prng.rand_word() ^ ord(c)**.
  • Ciphertext dikonversi jadi hex dan ditampilkan.

Solution:

Berikut skrip untuk menyelesaikan tantangan ini:

Script Solve :

//WanZKey
from pwn import *
r = remote('bad-prng.nc.broncoctf.xyz', 8000)
c = bytes.fromhex(r.recvall().strip().decode())
r.close()
next = c[0] ^ ord("b")
flag = "b"
for el in c[1:]:
    next = (next*3)%256
    flag += chr(next ^ el)
print(flag)

Hasil :

Hasil Script Solve

Hasil Script Solve

Flag: bronco{0k_1ts_n0t_gr34t}


메타데이터
post_id
e361efc06f9b
slug
writeup-broncoctf-2025-all-my-solve-challenges-cryptography-e361efc06f9b
url
https://medium.com/@wanzkey/writeup-broncoctf-2025-all-my-solve-challenges-cryptography-e361efc06f9b
canonical_url
https://medium.com/@wanzkey/writeup-broncoctf-2025-all-my-solve-challenges-cryptography-e361efc06f9b
author_url
https://medium.com/@wanzkey
status
ok
fetched_at
2026-06-28 04:42:08