Hướng dẫn làm bài thi vòng Sơ khảo 2021
Vòng thi Sơ khảo được tổ chức online theo hình thức thi CTF – Jeopardy, cụ thể:Đề thi gồm các thử thách (các bài tập) thuộc các lĩnh vực sau:
- Web application: Khai thác các lỗ hổng ứng dụng web (SQL injection, XSS, Session Hijacking…)
- Reverse engineering: Dịch ngược mã nguồn phần mềm, unpack các packer bảo vệ mã nguồn
- Pwnable: Tìm lỗi, khai thác các lỗ hổng trong các ứng dụng server, phần mềm, hoặc đoạn mã (ví dụ: buffer overflow, viết shellcode, format string…)
- Network/Forensic: Điều tra, phân tích các dấu vết số (phân tích gói tin, phân tích dump bộ nhớ, ram….)
- Crypto/ACM: Giải mã string, giải thuật, phân tích thuật toán, lập trình thuật toán…
Khi cuộc thi bắt đầu, các đội thi cần đăng nhập vào trang web thi bằng tài khoản của đội mình. Các đội có thể làm không theo thứ tự và làm cùng lúc nhiều bài trong các thử thách của đề thi.
Các đội chơi cần vượt qua các yêu cầu của bài tập để giành được cờ (flag). Định dạng của cờ là: ASCIS{.*}, ví dụ: ASCIS{th1s_1s_4_fl4g}
Khi tìm được flag, các đội chơi cần nộp (submit) ngay flag của đội mình để giành điểm sớm nhất, các đội giành điểm sớm nhất có lợi thế xếp hạng về thời gian khi bằng điểm các đội chơi khác.
Điểm số của mỗi thử thách phụ thuộc vào số đội đã làm được thử thách đó (submit đúng cờ), theo quy tắc sau:
Càng nhiều đội giải được cùng một thử thách thì điểm đạt được từ thử thách đó càng giảm.
Thử thách i sẽ có điểm cao nhất là Dmax(i) cho đội đầu tiên giải được và khi có thêm đội giải được thì điểm sẽ tính lại, cho đến khi về Dmin(i) thì sẽ không thay đổi nữa.
D(i) = Dmax(i) – (Dmax(i) – Dmin(i)) * s2(i)/d2(i). Trong đó: s(i) là số Đội đã giải được thử thách i; d(i) là số đội giải được khi điểm về Dmin(i). Mặc định Dmax(i) = 500, Dmin(i) = 100, d(i) = 20.