Pixelated

Download 2 file gambar dari picoctf dan letakan dalam satu folder di kalilinux Di folder tesebut, buat file python dengan nama pixelated.py Isi file dengan codingan berikut from PIL import Image img1 = Image.open(“scrambled1.png”) pixels1 = img1.load() img2 = Image.open(“scrambled2.png”) pixels2 = img2.load() flag = Image.new(“RGB”, img1.size) flagpix = flag.load() for row in range(img1.size[1]):     for col in range(img1.size[0]):         flagpix[col, row] = (             (pixels1[col, row][0] + pixels2[col, row][0]) % 256,             (pixels1[col, row][1] + pixels2[col, row][1]) % Read more…

Easy Peasy

Buka terminal kalilinux dan buat file python dengan nama easypeasy.py touch easypeasy.py Edit isi file dengan codingan berikut from Crypto.Util.number import long_to_bytes from pwn import * conn = remote(‘mercury.picoctf.net’, 36981) # Terima data sampai bagian flag terenkripsi conn.recvuntil(“This is the encrypted flag!\n”.encode()) encrypted_flag = str(conn.recvline(), “ascii”).strip() print(“Encrypted Flag:”, encrypted_flag) flag_len = int(len(encrypted_flag) / 2) padding = “a” * (50000 – flag_len) # Kirim padding untuk mendapatkan key conn.sendlineafter(“What data would you like to encrypt?”.encode(), padding.encode()) Read more…

No Padding

Buka terminal di kalilinux Buat file python dengan nama nopadding.py touch nopadding.py Edit isinya dengan nano nopadding.py dengan isi codingan from pwn import * import binascii r = remote(‘mercury.picoctf.net’, 60368) r.recvlines(4) r.recvuntil(b’n: ‘) n = int(r.recvline().strip()) r.recvuntil(b’e: ‘) e = int(r.recvline().strip()) r.recvuntil(b’ciphertext: ‘) c = int(r.recvline().strip()) # Calculate payload payload = c * pow(2,e,n) r.sendlineafter(b’Give me ciphertext to decrypt: ‘, str(payload)) r.recvuntil(b’Here you go: ‘) doubled_plain = int(r.recvline().strip()) print(“Doubled Plain:”, doubled_plain) # Calculate plain text Read more…

New Caesar

touch newcaesar.py ciphertext=”apbopjbobpnjpjnmnnnmnlnbamnpnononpnaaaamnlnkapndnkncamnpapncnbannaapncndnlnpna” ALPHABET = “abcdefghijklmnop” def unshift(c, k):     t1 = ord(c) – 97     return ALPHABET[(t1 – k + 32) % len(ALPHABET)] def b16_decode(cipher):     enc = “”     for i in range(0, len(cipher), 2):         enc += chr((ord(cipher[i]) – 97) * 16 + (ord(cipher[i+1]) – 97))     return enc for i in range(16):     shifted = “”     for char in ciphertext:         shifted += unshift(char, i)     print(‘key ‘, i, ‘: Read more…

Dachshund Attacks

Salin link nc yang diberikan picoctf nc mercury.picoctf.net 41508 Buka terminal kalilinux lalu paste link yang telah disalin dan enter Maka didapatkan detail RSA Ambil detail nya dan salin ke notepad agar lebih mudah digunakan Buka terminal kalilinux kembali, lalu buat file python dengan nama dashcund.py touch dashcund.py Isi file dengan program berikut import owiener c=24141492881014668575011990967984322926602233339350158664325968503135212968483203583758019739631033560791013630791775548775772531198269767637795779243980966023287318895278921121084099477114413314400903681485887355591052693305692156113371033566121274489661286148973691131854312778597874546531597309027499759511 e=32658820351176694525974038833951761625961866592643530159742345490036156817943095535116550589897191603582559310012172703008282476227122711928061035861554544855279517630662756837624990817155267461555088978408613781269747896682639900612152313188726421581658646196339023246827151598427581455515449056202055486963 n=101187502422546216908091483753539690460236138288133221155202854718884461375029346421229274484136680644124271881206302248985667116983472240000718044090119919826410037948326795727768753657676963863276282646385527542011027685264224202685403596727667982620828958042937237260823893413632305330505712698755036340689 d = owiener.attack(e, n) if d is None:     print(“Failed”) else :     M = pow(c, d, Read more…

Mind your Ps and Qs

Download file values dari picoctf Buka file tersebut Akses situs https://www.dcode.fr/rsa-cipher Paste kan beberapa value dari file Misalkan isi file seperti ini Decrypt my super sick RSA: c: 843044897663847841476319711639772861390329326681532977209935413827620909782846667 n: 1422450808944701344261903748621562998784243662042303391362692043823716783771691667 e: 65537 Maka inputkan beberapa bagian sesuai dengan inputan di dcode.fr Klik decrypt dan akan didapatkan flag

Mini RSA

Download file ciphertext dari picoctf Buka terminal kalilinux dan buat file dengan nama solve.py Install gmpy2 python3 -m venv venv source venv/bin/activate pip install gmpy2 Isikan file dengan program berikut #!/usr/bin/python from gmpy2 import iroot # Given in the challenge N= 1615765684321463054078226051959887884233678317734892901740763321135213636796075462401950274602405095138589898087428337758445013281488966866073355710771864671726991918706558071231266976427184673800225254531695928541272546385146495736420261815693810544589811104967829354461491178200126099661909654163542661541699404839644035177445092988952614918424317082380174383819025585076206641993479326576180793544321194357018916215113009742654408597083724508169216182008449693917227497813165444372201517541788989925461711067825681947947471001390843774746442699739386923285801022685451221261010798837646928092277556198145662924691803032880040492762442561497760689933601781401617086600593482127465655390841361154025890679757514060456103104199255917164678161972735858939464790960448345988941481499050248673128656508055285037090026439683847266536283160142071643015434813473463469733112182328678706702116054036618277506997666534567846763938692335069955755244438415377933440029498378955355877502743215305768814857864433151287 e = 3 c =  1220012318588871886132524757898884422174534558055593713309088304910273991073554732659977133980685370899257850121970812405700793710546674062154237544840177616746805668666317481140872605653768484867292138139949076102907399831998827567645230986345455915692863094364797526497302082734955903755050638155202890599808154521995312832362835648711819155169679435239286935784452613518014043549023137530689967601174246864606495200453313556091158637122956278811935858649498244722557014003601909465057421728834883411992999408157828996722087360414577252630186866387785481057649036414986099181831292644783916873710123009473008639825720434282893177856511819939659625989092206115515005188455003918918879483234969164887705505900695379846159901322053253156096586139847768297521166448931631916220211254417971683366167719596219422776768895460908015773369743067718890024592505393221967098308653507944367482969331133726958321767736855857529350486000867434567743580745186277999637935034821461543527421831665171525793988229518569050 for i in range(5000):     m, exact_root = iroot(i*N + c, e)     if exact_root:         print(f”Found i: {i}”)         msg = bytes.fromhex(format(m, ‘x’)).decode()         print(f”Found Msg: Read more…

Spelling-quiz

Download file zip dari picoctf yang diberikan dengan kalilinux Akses lokasi file zip dengan terminal Ekstrak file zip dengan perintah Unzip namafile.zip, misalkan namafile nya public.zip maka Unzip public.zip cd public Tampilkan 10 baris pertama dari file study-guide.txt head study-guide.txt Hitung jumlah baris di file study-guide.txt wc -l study-guide.txt Tampilkan isi file flag.txt cat flag.txt Install subbreaker python3 -m venv venv source venv/bin/activate pip install subbreaker Gunakan 100 baris pertama dari study-gude.txt untuk di break Read more…

Basic-mod2

Basic-mod2 hampir mirip dengan sebelumnya, hanya saja di soal meminta modular inverse yang maksudnya adalah kebalikan dari hasil bagi per item nya. Download file message dari picoctf Buat file python di kalilinux dan beri nama basicmod2.py Edit isinya dengan perintah nano basicmod2.py Isi file seperti ini chrs = “ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_” enc_message = “104 372 110 436 262 173 354 393 351 297 241 86 262 359 256 44> flag = “” def modular_inverse(x: int, m: int) Read more…

Basic-mod1

Download file message dari picoctf Buat file python di terminal kalilinux dan berinama basicmod.py Edit isinya dengan perintah nano basicmod.py Isi file seperti ini nums = “165 248 94 346 299 73 198 221 313 137 205 87 336 110 186 69 223 213 216 216 177 138” nums = nums.split(” “) nums = [int(i, 10) for i in nums] for i in nums:     t = i % 37     if t <= 25: Read more…