BuckeyeCTF 2023
Buckeye CTF 2023
CRYPTOGRAPHY WRITEUP
Author:
Pham Quoc Trung
Used Language:
Python3
Problem Solving:
My First
Here's your flag: 8f163b472e2164f66a5cd751098783f9 Psyc! Its encrypted. You think I'd give it to you that easily? Definitely don't look at my code tho -><- (when you find the flag, put it in bctf{} format)
Bài này khá đơn giản, mình chỉ cần ném đoạn mã md5 kia lên trên một trang web giải mã bất kì trên Google. Ở đây mình sử dụng trang này.
Flag: bctf{orchestra}
Rivest-Shamir-Adleman
Big numbers make big security
Attachment: dist.py
Bài này là về RSA. Do đã có đủ p,q nên mọi việc không có gì khó cả. Mình chỉ cần áp dụng công thức m=pow(c,d,n) là ra được flag.
Flag: bctf{1_u53d_y0ur_k3y_7h4nk5}
Secret Code
Here's your flag again: 1:10:d0:10:42:41:34:20:b5:40:03:30:91:c5:e1:e3:d2:a2:72:d1:61:d0:10:e3:a0:43:c1:01:10:b1:b1:b0:b1:40:9 LOL you snub_wrestle. Good luck trying to undo my xor key I used on each character of the flag.
Nhìn vào đoạn mã trên khi bỏ dấu ":" đi mình thấy nó khá giống hex, đề bài lại đề cập tới XOR nên mình thử luôn. Ý tưởng là mình sẽ XOR đoạn mã trên với "snub_wrestle". Đây là code để thực hiện:
Và mình ra được flag thật :v Flag: bctf{d0n't_lo0k_uP_snub_wResTling}
Electronical
I do all my ciphering electronically
https://electronical.chall.pwnoh.io
Dưới đây là đoạn code của trang web trên:
Nôm na là mình sẽ nhập gì đó vào input. Chương trình sẽ trả về cho mình một đoạn mã hóa của (input + flag) sử dụng AES_ECB. Vì vậy, mình sẽ sử dụng kĩ thuật Padding Oracle Attack.
Đầu tiên mình xác định độ dài của flag (Thật ra là không cần thiết :v)
Ở đây mình tìm ra được flag dài 40 bytes. Đối với AES_ECB, mỗi block sẽ dài 16 bytes, tương đương 32 ký tự hex. Ý tưởng sẽ là như vầy:
Code thực hiện ý tưởng:
Và mình ra được flag. Tuy nhiên, đoạn code trên chạy khá lâu vì với mỗi kí tự cần test, mình lại phải gửi 1 request.
(Não đang load để viết solve mới)
Flag: bctf{1_c4n7_b3l13v3_u_f0und_my_c0d3b00k}
© 2023,Pham Quoc Trung. All rights reserved.
Last updated