Sau đây là những kinh nghiệm của mình dành cho các bạn newbie muốn học chơi cái này. Mình hiểu rất rõ tâm lí các bạn newbie vì thực sự mình cũng như các bạn, học chơi CTF được 3 tuần. Mình học chơi CTF là do thằng bạn dụ, để tham gia cuộc thi của khoa nó (khoa máy tính), cơ mà thi xong rồi và đạt được thứ hạng chấp nhận được. Mình cũng cần phải tập trung cho chuyên ngành của mình nên cũng không đam mê nữa.
À, CTF ở đây là mình nói dạng CTF kiểu có 1 challenge, việc của bạn là tìm flag, chứ không phải chơi theo team def nhé, đó mình chưa chơi nên không biết .
Mình cũng từng thắc mắc như các bạn, trước khi chơi CTF thì cần phải học những gì? Câu trả lời mình thấy là: không cần học cái gì cả, cứ kiếm đại cái web nào đó rồi chơi thôi. Web nào cũng được, tại web nào cũng có challenge. Web xịn thì nhiều chal, nhiều người để bạn có thể hỏi, nhiều sol trên mạng. Web chưa xịn thì kiếm ít thấy.
CTF thì chia ra một vài mảng chủ yếu như RE, pwn (bin exploit), Crypto, Web, Forensics,… Mình thấy có một số trang chia thêm mảng nữa là programming, nhưng với mình chơi CTF mà không biết programming thì thôi, bạn chả nên chơi làm gì, không vui đâu. Không cần bạn phải master, chỉ cần biết vài cú pháp cơ bản để xử lí những task bạn cần khi solve challenge thôi, tí mình sẽ nói kĩ thêm. Các mảng này bạn mạnh mảng nào thì search mảng đó mà chơi =)), thậm chí mấy mảng to như này còn có mấy mảng nhỏ khác cơ, như kiểu web thì có XSS, SQLi, … Bạn muốn chơi cụ thể mảng nào thì cứ search cái mảng đó để mà chơi vì mấy mảng mà nhiều người quan tâm thì thường sẽ có luôn 1 web riêng chỉ về mảng đo cho mà chơi =)).
Nếu bạn hoàn toàn fresh, không biết bất cứ thứ gì luôn thì mình recommend là Crypto. Chỉ cần programming và toán. Thật ra thì programming cũng không hẳn cần lắm, vì tool quá trời, nhiệm vụ bạn là chọn đúng tool thôi. Tuy nhiên nhiều challenge thì nó theo 1 quy tắc không thông thường và rất cần programming để automate. Toán thì không cần bạn phải đạt HSG quốc gia hay tỉnh gì cả, + - x /, thế là cũng đủ chơi cơ bản rồi. Mấy cái khó hơn thì nhiều toán hơn, lúc đó đam mê thì tự học thêm .
programming là cực kì cần thiết, đúng là nhiều bài không cần dùng programming nhưng chơi vậy không vui, thật. Có nhiều bài mình cứ quăng đại vào cái tool cũng ra đáp án. Không mấy cảm xúc . Vậy cần học ngôn ngữ gì? Recommend Python nhé . Bạn không cần phải hiểu rõ nó, cũng chẳng cần biét hướng đối tượng là gì, biết if else, for while và xử lí các kiểu dữ liệu là đủ. Một vài mảng khác thì bạn phải có thêm một số kiến thức về ngôn ngữ lập trình khác nữa như RE, pwn thì phải biết C, mã máy,… rồi web thì html, js, SQL, … Nhưng cứ bắt đầu bằng Python đi!
Google. Chơi CTF mà không google được thì thôi, bạn chuyển sang chơi Mario có lẽ hợp lí hơn. Cứ google đi, google hoài thì trình search càng cao =)). Google mọi thứ về cái challenge mình đang làm, thậm chí là cái title. Mình cũng không biết có tutorial nào chỉ search google không, cơ mà chắc có đó , bạn google xem thử coi có không.
Chơi CTF có cần Linux không? Thật ra không cần lắm đâu, đương nhiên một vài task thì Linux vẫn oke hơn vì Windows nó ngu lắm, thề. Cơ mà mình vẫn dùng Windows là chủ yếu, terminal thì dùng wsl, tool thì có vài tool vẫn có bản windows. Còn không máy mạnh thì giả lập cũng được, tuỳ bạn thôi.
Thế là ok rồi, chơi thôi, ngại gì? Cứ chơi đi, rồi trình sẽ tự lên thôi.
Mình thì recommend mấy cái như https://cryptohack.org/ để chơi crypto, picoctf để có nhiều mảng hơn chơi (ơ mức cơ bản), còn mình thì bữa mình search bừa ra cái https://ctflearn.com/ rồi chơi ở web này luôn .
Đây là rank mình hiện tại và chắc là sau này sẽ tụt tại không chơi nữa =))
Anyway, good luck