General skills: Những bài đơn giản nhất để làm quen
Dưới đây là những bài đơn giản nhất để làm quen với CTF. Mình cam đoan bạn không cần phải qua bất kì môn nào để thực hành những bài này, chỉ cần 10p tìm hiểu là có thể giải được rồi. Nếu sau 10p tìm hiểu vẫn không hiểu , có thể tìm mình trong kênh Discord của Wanna One để "hỏi tội" nhá :D
Mình sẽ chia sẻ một số bài đơn giản của PicoCTF. Bạn có thể thực hành ở https://2019game.picoctf.com, vào mục Challenge Problems. Giao diện sẽ như sau:
Bên tay trái là "bộ lọc" các mảng. Ở bài này, mình sẽ làm mảng general skills, nên sẽ bấm vào dòng Only General Skills.
Lưu ý: Để các bạn có thể tìm tòi thêm, mình sẽ không để flag ở đây nhaa.
Một số bài chuyển hệ cơ số
Các bạn có thể chuyển bằng tay, bằng web hoặc máy tính bỏ túi đều được:3
Ngoài hệ đếm thập phân ( từ 0 đến 9) ra, thì còn nhiều hệ đếm phổ biến khác như Nhị phân (Binary - hệ 2), Bát phân (Octal - hệ 8), Thập lục phân (Hexadecimal - Hệ 16), Hệ 32 (từ A-Z, thêm các số 2,3,4,5,6,7 và dấu bằng), Hệ 64 (Từ a-z, A-Z, các số từ 0 đến 9, dấu trừ, dấu gạch dưới _ và dấu bằng = ) ....
Trong đó, gần như tất cả máy tính đều dùng hệ Nhị phân. Những bài dưới đây là đổi cơ số để bạn có thể làm quen với các hệ đếm
2Warm
Chall này yêu cầu chúng ta chuyển số từ hệ 10 sang hệ 2. Bạn có thể dùng tools , như là link này, hoặc là chuyển bằng tay.
Warmed Up
Chall này yêu cầu chúng ta chuyển từ hệ 16 (Hex) qua hệ 10.
Tương tự bài trên, các bạn có thể dùng tools như này , hoặc bạn có thể chuyển bằng tay.
Các bài cơ bản về kí tự
Trong máy tính chỉ sử dụng hệ đếm nhị phân, nên ta cần tìm cách "mã hóa' để có thể biểu diễn kí tự để đọc được. Có nhiều cách mã hóa như ASCII ( kí tự tiếng Anh , vài dấu câu, không hỗ trợ tiếng Việt), UTF-8, Unicode (cả 2 chuẩn mã hóa sau đều hỗ trợ tiếng Việt)... Nhưng thông dụng trong các cuộc thi là ASCII bởi vì nó đơn giản. Bạn có thể coi bảng tóm tắt ASCII ở đây
Let's Warm Up
Bạn có thể tra cứu bảng tóm tắt ASCII mình đưa ở trên
Bases
Chall này hỏi về bases, còn có nghĩa là hệ đếm.. Đoạn chữ màu đỏ chính là các kí tự được chuyển qua base64. Bạn có thể dùng tool chuyển từ base64 qua text ở đây
General skills: Các lệnh cơ bản linux
Mặc dù gần đây Linux đã có những giao diện đồ họa đẹp mắt không kém gì Windows, nhưng linux lại phổ biến hơn với những chương trình dòng lệnh ( không có đồ họa, con chuột..) Sau đây là một vài challenge dùng các công cụ cơ bản của Linux
First Grep
grep là lệnh để tìm 1 đoạn kí tự nào đó trong file. Cách dùng:
grep <đoạn_muốn_tìm> <file_để_tìm>.
Ở các bài trước, mình đã biết format của flag bắt đầu bằng picoCTF, nên tìm thử nó trong file BTC cho đi
strings it
strings là công cụ tìm tất cả đoạn kí tự in được có trong một file
Cách dùng:
strings <tên_file>
Khi grep, mình gặp hiện tượng như sau :( Bởi vì grep sẽ hiển thị dòng chứa đoạn cần tìm ( nghĩa là giữa 2 dấu \n ), khi không có đoạn xuống dòng thì tịt luôn
Mặc khác , strings in mỗi đoạn kí tự (ascii) thành một dòng khác nhau, và sau đó chúng ta có thể grep được.
What's a net cat
netcat (nc) là công cụ phổ biến để giao tiếp trong các cuộc thi CTF.
cú pháp của netcat:
nc <địa_chỉ_máy_chủ> <port>
Bạn hãy thử dùng lệnh trên với máy chủ và port BTC cho thử xem nha