picoCTF 2018 write up.
Tiếp nối các bài write up của bạn I am a bear, mình sẽ viết thêm write up của 1 vài bài đơn giản của pico ctf. Mục đích chính viết...
Tiếp nối các bài write up của bạn I am a bear, mình sẽ viết thêm write up của 1 vài bài đơn giản của pico ctf. Mục đích chính viết 1 phần nhằm lưu trữ lại write up để tham khảo và cũng là có cái để lòe bọn d18:)) Mà thôi không dài dòng nữa, bắt đầu thôi
hex editor-Points:150
Đề cho 1 file ảnh hoàng thượng khá là cute và yêu cầu tìm 1 thông điệp ẩn được dấu trong ảnh. Link ảnh: https://drive.google.com/open?id=1ZloG1KJiz4rrkJpqzFmsfgLywDfLtieX
Dựa vào đề bài và phần hint thì sẽ cần 1 hex editor để tìm được thông điệp yêu cầu. Hex editor là 1 phần mềm cho phép xem và chỉnh sửa các bit hex của 1 file, là 1 công cụ không thể thiếu trong các cuộc thi ctf. Yêu cầu cũng khá là đơn giản thôi, ở đây mình sẽ dùng bless- 1 hex editor phổ biến trên ubuntu. Mở lên và kéo xuống dưới ta sẽ tìm được thứ cần tìm.
Submit flag và ta có 150 điểm.
Truly an Artist-Points:200
Bài này cũng gần tương tự như bài trên. Cũng yêu cầu tìm 1 flag bị giấu trong file ảnh. Link ảnh: https://drive.google.com/open?id=1IGlLauAlYfShtjuUCkC-KiGk56-8ZXo_
Mở file ảnh cả bằng Window và Ubuntu đều ổn, có nghĩa là file ảnh không bị chỉnh sửa gì trong các bit hex. Cũng mở ảnh bằng hex editor để kiểm tra các bit hex ta có flag:
Submit và ez có 200 điểm.
blaise's cipher-Points: 200
Đề bài yêu cầu giải 1 loại crypto do 1 ông tên là Blaise sáng tạo ra. Kết nối với 2018shell3.picoctf.com ở cổng 11281 bằng netcat trên Ubuntu để lấy đề
Trước hết nhìn vào đoạn cipher text trên thấy được 1 đoạn text khá giống với form của flag: pohzCZK{g1gt3w3_n1pn3wd_ax3s7_maj_5352gq72}. Chỉ nên tập trung vào đoạn text này để tránh mất thời gian. Tiếp theo 1 fact khá thú vị: Blaise ở đây chính là nói đến Blaise de Vigenère và loại crypto đang được nhắc đến là mã Vigenère- 1 loại crypto mạnh hơn mã Ceaser rất nhiều do dùng tới 26 bảng chữ cái để mã hóa. Tất nhiên công việc giải mã chỉ khó với người giải ở thời điểm hơn 400 năm trước, bây giờ với những công cụ decode online, ta có thể dễ dàng giải được. Trước hết vì chưa có key cần thiết để decode nên mình sẽ sử dụng trang https://www.dcode.fr/vigenere-cipher để brute force ra key
Nhận thấy đoạn text đầu với key FLAG là có nghĩa, cơ mà đoạn text decode ra của trang này hơi khó nhìn nên mình sẽ dùng trang https://cryptii.com/pipes/vigenere-cipher cho dễ nhìn
Flag kia rồi, submit và có 200 điểm.
what base is this-Points: 200
Đề yêu cầu lấy flag từ 1 chương trình, cần kỹ năng đọc dữ liệu dưới các hệ mã như nhị phân,... Kết nối với 2018shell3.picoctf.com ở cổng 31711 bằng netcat để lấy đề. Với bài này mình sẽ sử dụng https://kt.gy/tools.html#conv/ để làm. Kt.gy là 1 trang hỗ trợ chuyển đổi các hệ mã rất nhanh và tiện lợi. Trước hết kết nối với 2018shell3.picoctf.com có 1 thông điệp hiện lên
Yêu cầu đưa ra là chuyển đoạn 01110000 01101100 01110101 01100111 thành text, dễ thấy đây là 1 đoạn mã nhị phân. Sử dụng kt.gy ta có input là plug
Sau khi nhập input, hiện ra yêu cầu tiếp theo
Lần này là chuyển 636f6d7075746572 thành text, đây là 1 đoạn thập lục phân, tiếp tục sử dụng kt.gy để lấy input là computer
Nhập input vào và hệ thống lại xuất hiện yêu cầu
Chuyển 163 164 157 166 145 thành text, lần này là hệ bát phân. Việc cần làm cũng giống 2 lần trước thôi
Input là stove, nhập vào và ta có flag
Cái ức chế ở bài này là chỉ có 30s để chuyển và nhập input, còn về căn bản thì vẫn khá là ez:))
Submit flag và có 200 điểm
caesar cipher 2-Points: 250
Đề yêu cầu decrypt 1 đoạn text đã được mã hóa bằng mã caesar. Truy cập vào đường dẫn /problems/caesar-cipher-2_0_372a62ea0204b948793a2b1b3aeacaaa trên shell sever của pico. Về shell sever của pico thì bạn I am a bear đã nói về cách truy cập rồi nên mình sẽ không nhắc lại nữa:))
Sử dụng lệnh cd và strings, ta lấy được đoạn cipher text đề cho: ^WQ]1B4iQ/SaO@M1W>V3`AMXcABMO@3\BMa3QC`3k
Trước hết ta thấy đây chắc chắn không phải mã caesar bình thường do xuất hiện các ký tự đặc biệt như ^ và /. Tuy nhiên, trong phần hint có nhắc đến bảng mã ASCII nên trước hết ta có thể suy luận theo hướng đoạn cipher text trên đã thay đổi các ký tự chữ thành các ký tự trong bảng mã ASCII. Vấn đề ở đây là thay đổi như thế nào?
Dựa vào form flag là picoCTF{...} và bảng mã ASCII có thể suy luận rằng chữ p đã được chuyển thành ký tự ^ tức là ký tự thứ 112 đã chuyển thành ký tự thứ 94. Và để decrypt, ta sẽ cần làm ngược lại, tức là chuyển ký tự thứ 94 thành ký tự thứ 112, tương tự với các ký tự còn lại trong cipher text. Tuy nhiên giải tay sẽ rất lâu và mất thời gian nên mình đã dùng 1 đoạn code C++ đơn giản để làm cho nhanh
Chạy đoạn code trên và ta có flag
Submit và có 250 điểm.
Nếu có góp ý hay sửa chữa gì mong mọi người comment cho mình biết, mình cũng mới chỉ là newbie trong ctf nên rất mong những đóng góp của mọi người. Cảm ơn các bạn đã đọc hết bài viết khô như ngói này của mình:))
Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất