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