CTF
Bao gồm Web, Reverse Engineering, Mã hóa, Phân tích pháp y, Khai thác nhị phân và nhiều lĩnh vực khác.
Install / Use
/learn @F12FLASH/CTFREADME
Dưới đây là 30 đề CTF cực khó cấp độ Master, đòi hỏi kiến thức sâu về reverse engineering, cryptography, binary exploitation, web security, và các kỹ thuật hack não. Mỗi đề đều có twist riêng để thách thức ngay cả những hacker giỏi nhất.
1. Reverse Engineering: "Ouroboros"
- Mô tả: Một file ELF 64-bit tự modify code trong lúc chạy. Flag được mã hóa bằng thuật toán AES nhưng key được phân mảnh trong 10 hàm khác nhau.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Dynamic analysis với
ptraceanti-debug, cần viết script ghép key từ memory dump.
2. Cryptography: "Schrödinger's RSA"
- Mô tả:
- Public key:
(n, e)vớin = p*qvàe = 65537. - Nhưng
pvàqkhông tồn tại (vìnlà số nguyên tố). - File mã hóa:
c = pow(flag, e, n).
- Public key:
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý:
nlà prime ⇒phi(n) = n-1⇒ decrypt bằngpow(c, d, n)vớid = inv(e, n-1).
3. Web: "Zero-Day Cookie"
- Mô tả:
- Trang web dùng cookie
session=JWTký bằng thuật toánHS256với secret lànull. - Nhưng server chỉ chấp nhận token ký bằng
RS256.
- Trang web dùng cookie
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Chuyển đổi
HS256sangRS256bằng cách forge keynullthành PEM.
4. Pwn: "Stackless Stack"
- Mô tả:
- Binary x86-64 không có stack (dùng
mmap+syscallđể thay thế). - Lỗi buffer overflow nhưng không có
ret.
- Binary x86-64 không có stack (dùng
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: ROP bằng
syscallgadget +mprotectđể biến vùng nhớ thành executable.
5. Crypto: "Elliptic Nightmare"
- Mô tả:
- ECDSA với curve tự định nghĩa:
y² = x³ + ax + b (mod p)nhưngpkhông phải số nguyên tố. - Chữ ký bị leak 2 bit nonce.
- ECDSA với curve tự định nghĩa:
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Lợi dụng Lattice Attack (LLL) trên vành không nguyên tố.
6. Reverse: "The Mimic"
- Mô tả:
- Binary tự dịch mã máy thành WASM rồi chạy trong sandbox.
- Flag bị encrypt bằng thuật toán XOR nhưng key thay đổi sau mỗi 10ms.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Hook hàm
time()để freeze key.
7. Web: "GraphQL Apocalypse"
- Mô tả:
- GraphQL endpoint cho phép query bất kỳ dữ liệu nào.
- Nhưng flag nằm trong database chỉ truy cập được bằng mutation đặc biệt.
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng
introspectionđể tìm mutation ẩn, sau đó exploit type confusion.
8. Pwn: "The Black Hole"
- Mô tả:
- Binary dùng
seccompchỉ cho phépread,write,exit. - Có lỗi format string nhưng không có stack.
- Binary dùng
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Ghi đè
GOTcủaexitthànhsyscallgadget.
9. Crypto: "MD5 is Alive"
- Mô tả:
- Server trả về
md5(flag + "||" + user_input)nhưng chỉ so sánh 4 byte đầu. - Cần tìm
flagdài 64 byte.
- Server trả về
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Length extension attack với
md5.
10. Reverse: "Quantum Crackme"
- Mô tả:
- File binary thực thi khác nhau trên các CPU khác nhau (AMD vs Intel).
- Flag chỉ hiển thị nếu chạy trên QEMU với
-cpu quantum.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Patch CPUID hoặc dịch ngược code QEMU.
11. Web: "SSRF to Mars"
- Mô tả:
- Web app có chức năng fetch URL nhưng filter tất cả domains.
- Flag nằm trên
http://localhost:1337nhưng127.0.0.1bị chặn.
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng DNS rebinding hoặc IPv6
::1.
12. Pwn: "The Undefined"
- Mô tả:
- Binary C++ dùng undefined behavior (UB) để xor flag.
- Mỗi lần chạy, flag bị encrypt khác nhau.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Khai thác UB bằng cách fix seed của compiler.
13. Crypto: "RSA in a Parallel Universe"
- Mô tả:
n = p*qvớipvàqlà số phức Gaussian.evàdcũng là số phức.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Áp dụng RSA trên vành số phức.
14. Reverse: "The Joker"
- Mô tả:
- Binary in ra flag nhưng sau đó dùng
ptracetự xóa mình khỏi memory.
- Binary in ra flag nhưng sau đó dùng
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng
gdb scriptđể dump memory trước khi bị xóa.
15. Web: "DOM XSS in 302 Redirect"
- Mô tả:
- Trang web redirect đến
evil.comnhưng có CSP nghiêm ngặt. - Flag nằm trong cookie của admin.
- Trang web redirect đến
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Khai thác
iframe+window.openerđể bypass CSP.
16. Pwn: "The Phoenix"
- Mô tả:
- Binary tự kill và respawn sau 1 giây, mỗi lần ASLR khác nhau.
- Có lỗi buffer overflow nhưng chỉ có 1 lần try.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Bruteforce ASLR bằng cách crash liên tục.
17. Crypto: "One-Time-Pad Revenge"
- Mô tả:
- OTP key được tạo từ
SHA256(flag). - Cho trước 1000 bản mã của cùng plaintext.
- OTP key được tạo từ
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: XOR tất cả ciphertext để thu hẹp không gian flag.
18. Reverse: "The Invisible Man"
- Mô tả:
- Binary không có strings, không có syscall, chỉ dùng
int 0x80. - Flag được giấu trong section
.datadưới dạng opcode.
- Binary không có strings, không có syscall, chỉ dùng
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Disassemble
.datanhư là code.
19. Web: "WebSocket Hell"
- Mô tả:
- WebSocket yêu cầu gửi 1000 message trong 1 giây để lấy flag.
- Server chỉ chấp nhận nếu message được gửi theo thứ tự Fibonacci.
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng WebWorker để đa luồng.
20. Pwn: "The Silent Exploit"
- Mô tả:
- Binary không in ra gì (
stdoutvàstderrbị đóng). - Phải khai thác qua side-channel (timing attack).
- Binary không in ra gì (
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Đo thời gian
sleepđể leak flag.
21. Crypto: "AES-128-ECB-IS-SECURE"
- Mô tả:
- Server mã hóa flag bằng AES-128-ECB với key ngẫu nhiên.
- Nhưng trả về ciphertext của
flag + user_input.
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Byte-at-a-time attack.
22. Reverse: "The Chameleon"
- Mô tả:
- Binary thay đổi behavior dựa trên tên file (nếu rename thành
debugthì in flag).
- Binary thay đổi behavior dựa trên tên file (nếu rename thành
- Độ khó: ⭐⭐⭐
- Gợi ý: Dùng
ltraceđể xemargv[0].
23. Web: "HTTP/3 0-Day"
- Mô tả:
- Server chạy HTTP/3 (QUIC) và bị lỗi buffer overflow ở header.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Khai thác QUIC với custom UDP packet.
24. Pwn: "The Oracle"
- Mô tả:
- Binary cho phép gọi bất kỳ hàm nào trong
libcnhưng không có shell.
- Binary cho phép gọi bất kỳ hàm nào trong
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng
dlopen+dlsymđể loadsystem.
25. Crypto: "SHA-256 Fixed Point"
- Mô tả:
- Tìm
xsao choSHA256(x) = x. - Flag là
xở dạng hex.
- Tìm
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Sử dụng meet-in-the-middle attack.
26. Reverse: "The Tesseract"
- Mô tả:
- File binary 4D (được compile bằng custom LLVM backend).
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Dùng QEMU để giả lập kiến trúc 4D.
27. Web: "CSS Injection to RCE"
- Mô tả:
- Trang web có lỗi CSS injection nhưng không có JS.
- Flag nằm trong attribute
data-flagcủa admin.
- Độ khó: ⭐⭐⭐⭐
- Gợi ý: Dùng
@font-face+ Unicode range để leak từng ký tự.
28. Pwn: "The Time Machine"
- Mô tả:
- Binary dùng
time_tđể xor flag nhưngtime_tbị rollback năm 1970.
- Binary dùng
- Độ khó: ⭐⭐⭐
- Gợi ý: Patch
time()trả về0.
29. Crypto: "ECC Backdoor"
- Mô tả:
- ECDSA với curve NIST P-256 nhưng có backdoor ẩn.
- Chữ ký bị leak 1 bit nonce.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Lattice attack với Hidden Number Problem.
30. Reverse: "The Final Boss"
- Mô tả:
- Binary tự compile lại code mỗi lần chạy, dùng genetic algorithm để thay đổi logic.
- Flag bị encrypt bằng thuật toán biến đổi theo thời gian thực.
- Độ khó: ⭐⭐⭐⭐⭐
- Gợi ý: Dùng
LD_PRELOADđể hook hàmrand.
Kết luận
Những đề này đòi hỏi kỹ năng cao, khả năng sáng tạo và kiên nhẫn. Nếu giải được hết, bạn xứng đáng là Hacker Master!
Bạn muốn mình triển khai chi tiết đề nào không? 😈
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
