CSCAMP CTF QUALS 2013 | CRYPTO 200 PNG

PNG
https://www.dropbox.com/s/yspv771rdrc4jhx/enc.png

Một đề bài nhỏ nhắn, một file mang tên enc.png không xinh xắn cho lắm.

Selection_006

Chúng ta đều biết là các định dạng file thường đều có header riêng, với gợi ý như đề ra cũng như tên file đề bài thì ở đây là một file ảnh cấu trúc png đã bị mã hóa. Tìm hiểu chút về cấu trúc file png
Chú ý một dòng xinh xinh :

Magic number: 89 50 4e 47 0d 0a 1a 0a

Như vậy trong mỗi file png, thì những byte đầu tiên của file là cái magic number này :p
Chưa biết file mã hóa cách nào, nhưng cứ hi vọng mọi thứ cứ đơn giản như xor cho lành :”>, cứ thử nếu sai thì tính tiếp
Nói chút về xor:

Cho A là byte cần mà hóa, K là key, ta có biểu thức: A ^ K = B
Để tìm lại giá trị K thì ra cần: A ^ B = K

Do ở đây ta đã biết các byte đầu của một file png rồi, như vậy ta đã có một phần đầu giá trị A
Dữ liệu đề cho chúng ta trong file enc.png chính là B.
Chưa biết K là gì, nhưng lại hi vọng key sẽ thật ngắn thôi, nếu key K ngắn hơn hoặc bằng độ dài magic number thì key sẽ hiển thị trọn vẹn sau phép xor với A, nếu key dài hơn thì sẽ là một thảm họa =((
Tiến hành xor những byte đầu file enc.png với magic number đã biết.

Selection_007

Ta thấy một chuỗi sau: x0Rk3yx0Rk3
Có một sự lặp nhẹ, không khó để đoán key là: x0Rk3y
Nhưng cứ phải thử mới biết được. Chúng ta lấy file enc.png ban đầu xor lại với cái key này, một file png rất đẹp, mở bằng trình xem ảnh ngon lành

enc

Botbie

C4L3™


Fatal error: Uncaught Exception: 190: Error validating application. Application has been deleted. (190) thrown in /home/u212514382/public_html/wp-content/plugins/seo-facebook-comments/facebook/base_facebook.php on line 1273