ctfs
  • 👋Hello!
  • 🏴Practice
    • 🌐Cryptohack
      • Introduction
      • General
        • Encoding
        • XOR
        • Mathematics
        • Data Formats
      • Symmetric Ciphers
        • How AES Works
        • Symmetric Starter
        • Block Ciphers 1
        • Stream Ciphers
      • Mathematics
        • Modular Math
        • Lattices
      • RSA
        • Starter
        • Primes Part 1
        • Public Exponent
    • 🌐PortSwigger
      • Path Traversal
      • File Upload
      • SSRF Attacks
    • 🌐TryHackMe
      • Basic Skills
      • Linux
      • Penetration Testing
      • Networking
      • OSINT
  • 🚩Competitions
    • 2025
      • 🇮🇩GKSK#9 Osintathon
        • Mudik Lebaran (100 pts)
        • Foto Patung (100 pts)
        • Kolektor Komik (100 pts)
        • Tolong Aku (100 pts)
        • Kencan Pertama (100 pts)
        • Nama Si Pelaku (100 pts)
        • Cekidot (100 pts)
        • Ledakan! (100 pts)
        • 🎹🎶 (100 pts)
        • Batu Besar (100 pts)
        • Komentar (100 pts)
        • Ini dimana? (100 pts)
        • Koordinat Foto Misterius (100 pts)
        • Bianglalaaa (100 pts)
        • Aku Hacker (100 pts)
        • Anjazzz (100 pts)
        • Dikirim Kakakku (129 pts)
        • Ingfo Loker (154 pts)
        • MISSING 00 (100 pts)
        • MISSING 01 (154 pts)
        • Siapa Aku? (154 pts)
      • 🇮🇩IFEST 13
        • Ququerer (250 pts)
        • Silent Trace (370 pts)
        • Nugas (Solved After Event)
        • Free Flag (280 pts)
        • Brute (Solved After Event)
        • Web V1 (Solved After Event)
        • Bypass (Solved After Event)
        • Orbiter (Solved After Event)
      • 🌐OSINT Combine (Wildlife)
        • Getting Started (100 pts)
        • Proper Poppy (100 pts)
        • Legendary Beasts (200 pts)
        • Shadow Fleet (200 pts)
        • Proper Poppy II (200 pts)
        • Not So Smug Smuggler (200 pts)
        • Icy (200 pts)
        • Forest Pals (200 pts)
        • Safari Time II (200 pts)
        • Sneaky! (200 pts)
        • Hello Friend (300 pts)
        • Busy As A (300 pts)
        • Get Rotated! (300 pts)
        • High Seas (300 pts)
        • Nocturnal (300 pts)
        • Safari Time (400 pts)
        • Peak Weather (400 pts)
        • Singsong (400 pts)
        • Falling Fell (500 pts)
        • Kitty Cats (500 pts)
      • 🇮🇩RECURSION
        • let him cook
        • Basic Math
        • Favourite Number
        • Zarrar Cipher (100 pts)
        • paBlue Team (100 pts)
        • [🩸] I wish I was there on December 21, 2024 (100 pts)
        • Small House (200 pts)
        • [🩸] Mission Difference (456 pts)
    • 2024
      • 🌐Santa Claus CTF
        • Complete Picture
        • Day 1 - Big Bang
        • Day 2 - The Summer Job
        • Day 3 - The Visitors
        • Day 4 - Happy Birthday
        • Day 5 - Say My Name
        • Day 6 - Say "Cheese"
        • Day 7 - Revealing Pixels
        • Day 8 - Connecting The Dots
        • Day 9 - 404 Not Found
        • Day 10 - Breaking News
        • Day 11 - Ayrton Santa
        • Day 12 - Lost and Found
        • Day 13 - Planespotting
        • Day 14 - Santa Surveillance
        • Day 15 - Shaken, Not Stirred
        • Day 16 - Status Update
        • Day 17 - Waste ...of Time
        • Day 18 - Lost in Translation
        • Day 19 - Santa's Clones
        • Day 20 - Losing Tracks
        • Day 21 - Sing my Song
        • Day 22 - Eagle Eye
        • Day 23 - Distances Matters
        • Day 24 - Mastermind
      • 🌐Cyber Jawara International
        • Stone Game (100 pts)
        • prepare the tools (176 pts)
        • Persona (484 pts)
      • 🌐OSMOSIS Precon CTF
        • 1 The art of espionage
        • # 2 The Hack
        • # 3 The rabbit hole
        • # 4 The Association
        • # 6 Where is number 5
        • # 5 Who is it
        • Too many Layers
        • The prize
      • 🇮🇩Intechfest
        • Sanity Check (100 pts)
        • Alin (113 pts)
        • GerakSendiri (106 pts)
        • Details (100 pts)
      • 🇮🇩COMPFEST 16
        • Let's Help John! (100 pts)
        • money gone, wallet also gone (100 pts)
        • head’s up! (493 pts)
        • CaRd (304 pts)
        • Sanity Check (100 pts)
      • 🇮🇩Gemastik
        • Baby AES (451 pts)
        • Baby Structured (100 pts)
      • 🇮🇩Technofair 11
        • Kenangan
        • Xorban
        • Marsha
        • Siap Tempur!!
        • eftipi
        • kurang berarti
        • DUMPling
        • Malicious
      • 🌐DIVER OSINT
        • chiban
      • 🇮🇩GKSK#8 Osintathon
        • Sport Location
        • Meklaren lu warna apa boss ?
        • Postcode
        • Rumah Minang
        • Latihan
        • Anak Misterius
        • Travelling Anywhere
        • The Thief
        • Danger Watch
        • Misteri Ruang Angkasa
        • Fun Walk
        • I am Late
        • My Oshi
        • Wellcome to my Youtube Channel
        • Pesan Tersembunyi Wingdings
        • Salah Fokus
        • Apa itu GKSK?
        • Foto Bersejarah
        • Picture
        • Nostalgia Child
        • oldschool
        • Summer Olympic
      • 🇮🇩Techcomfest
        • pemanasan
        • crackable
        • Kuli-ah forensik
    • 2023
      • 🇮🇩Cyber Jawara
        • daruma
      • 🇮🇩NCW
        • Simple (220 pts)
        • wangsaf (320 pts)
        • Sillyville Saga (220 pts)
        • Freminhelp (Solved after event)
      • 🇮🇩Hology 6
      • 🇮🇩SlashRoot 7
        • Summary (441 pts)
        • eeee (480 pts)
        • Zebra Cross (409 pts)
        • Waka Waka eh eh (185 pts)
        • ANABUL (250 pts)
      • 🇮🇩COMPFEST 15
        • not simply corrupted (316 pts)
        • Artificial secret (356 pts)
      • 🇮🇩Gemastik
        • easy AES
        • k-1
        • Gen Z
      • 🇮🇩TechnoFair 10
        • RSA Bwang
        • Marsah
        • rapsodi
        • Pengen Merch JKT 😢
        • space mono
        • file pemberian fans
        • bantu aku mencari sebuah rahasia
    • 2022
      • 🇮🇩NCW
        • sabeb64 (331 pts)
        • cakemath (451 pts)
        • Downloader (244 pts)
        • 199 passcode (Solved after event)
      • 🇮🇩TEDCTF
      • 🇮🇩Gemastik
      • 🇮🇩OSCCTF
      • 🇮🇩ARA
  • 🪦Old Hello
Powered by GitBook
On this page
  1. Competitions
  2. 2023
  3. TechnoFair 10

Marsah

Deskripsi

Kamu suka matrix? sama, aku juga suka Marsha

Format Flag: TechnoFairCTF{}

Author : AnYujin

Diberikan source code beserta outputnya.

from sage.all import *
from Crypto.Util.number import *
import random

flag="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
flag=[ord(i) for i in flag]
flag=[flag[i:i+6] for i in range(0,len(flag),6)]

def gen_key():
	a=[random.getrandbits(16) for _ in range(6)]
	key=[[0]*_+[a[_]]+[0]*(5-_) for _ in range(6)]
	key=Matrix(key)
	return key

flag=Matrix(flag)
key = gen_key()
key=Matrix(key)

enc=flag*key
ev=key.eigenvectors_right()
enc=list(enc)

print(f"key_hint :{ev}")
print(f"enc : {enc}")
key_hint :[(65382, [(0, 0, 0, 1, 0, 0)], 1),
(62011, [(0, 0, 0, 0, 1, 0)], 1),
(60874, [(1, 0, 0, 0, 0, 0)], 1),
(46110, [(0, 0, 1, 0, 0, 0)], 1),
(43844, [(0, 1, 0, 0, 0, 0)], 1),
(27708, [(0, 0, 0, 0, 0, 1)], 1)]
enc : [(6270022, 2279888, 4611000, 6865110, 7131265, 2632260), (6513518, 2104512, 4979880, 6603582, 7069254, 2909340), (7000510, 4165180, 5579310, 3399864, 6821210, 1579356), (5783030, 2323732, 5394870, 4903650, 3224572, 2632260), (5965652, 4428244, 5256540, 6865110, 6759199, 1440816), (6452644, 3200612, 5072100, 3399864, 7131265, 1357692)]

Pertama-tama, saya mengutak-atik terlebih dahulu program yang ada untuk memahami cara kerja kodenya. Saya menemukan bahwa ternyata key itu adalah matriks diagonal, jadi perkalian flag*key itu mirip dengan perkalian skalar tapi berbeda-beda untuk setiap kolom.

Kira-kira seperti ini contohnya untuk flag yang karakternya sama semua.

Selain itu, rupanya key_hint menunjukkan pada kita, “untuk kolom tertentu pada matrix diagonal, value-nya apa?”. Dengan pengetahuan ini, berikut adalah solver lengkapnya.

# key_hint :[(65382, [(0, 0, 0, 1, 0, 0)], 1),
# (62011, [(0, 0, 0, 0, 1, 0)], 1),
# (60874, [(1, 0, 0, 0, 0, 0)], 1),
# (46110, [(0, 0, 1, 0, 0, 0)], 1),
# (43844, [(0, 1, 0, 0, 0, 0)], 1),
# (27708, [(0, 0, 0, 0, 0, 1)], 1)]

key_diagonal = [60874, 43844, 46110, 65382, 62011, 27708]
enc = [(6270022, 2279888, 4611000, 6865110, 7131265, 2632260), (6513518, 2104512, 4979880, 6603582, 7069254, 2909340), (7000510, 4165180, 5579310, 3399864, 6821210, 1579356), (5783030, 2323732, 5394870, 4903650, 3224572, 2632260), (5965652, 4428244, 5256540, 6865110, 6759199, 1440816), (6452644, 3200612, 5072100, 3399864, 7131265, 1357692)]

result = []

for t in enc:
	for i in range(len(t)):
		result.append(t[i] // key_diagonal[i])

flag = ""
for i in result:
	flag += chr(i)

print("TechnoFairCTF{"+flag+"}")

Flag: TechnoFairCTF{g4dis_k0leris_y4n9_5uK4_berim4jIn4s1}

PreviousRSA BwangNextrapsodi

Last updated 10 months ago

🚩
🇮🇩