SOFAR - Vault 500 pts anhdh vừa rồi đã đạt top 7 ...
创建于:2026年8月22日
使用 GPT-5.6 Thinking 回答 Chat01
创建于:2026年8月22日
使用 GPT-5.6 Thinking 回答 Chat01
SOFAR - Vault
500 pts
anhdh vừa rồi đã đạt top 7 trên BXH Việt Nam về tựa game Fantasy World Cup của SOFA Score. Quá bực tức vì không thể giành được top 1 nên anh ấy đã vứt điện thoại. Tuy nhiên trong điện thoại anh ấy vẫn còn dữ liệu quan trọng, bạn có thể tìm chiếc điện thoại đó và khôi phục dữ liệu giúp anh ấy không, giờ chắc là nó ở đâu đó ngoài biển?
Tiger Bạc (OSINT)
500 pts
Ngày nay, phần mềm AI được nhân viên dev lạm dụng khá nhiều. Trong một đợi vừa đi uống bia với ae đội dev về. Tôi luonginfosec đã lỡ tay push dự án lên mạng. May quá mọi việc diễn qua nhanh chóng. Có vẻ không ai biết về điều này
flag format: PTITCTF{this_is_a_flag}
tìm 2 flag của 2 challenge này
Mình đã bóc được khá sâu cả hai challenge, nhưng chưa xác minh được 2 flag cuối cùng, nên mình không muốn đưa flag đoán sai.
File ZIP chứa 8 graph ứng với đúng 8 vòng của World Cup 2026:
R1 → R2 → R3 → R32 → R16 → QF → SF → F
Điều này khớp với cấu trúc Fantasy World Cup 2026 của Sofascore: 3 vòng bảng, Round of 32 rồi các vòng knock-out. (SofaScore)
Các graph phải được dùng để duyệt các vị trí cầu thủ trong 8 screenshot, tạo thành 8 fragment, sau đó script.py XOR từng cột:
pythong = "0123456789bcdefghjkmnpqrstuvwxyz" "".join( g[ord(c1)&31 ^ ord(c2)&31 ^ ... ^ ord(c8)&31] )
Kết quả là một geohash dài 10 ký tự. Chi tiết quan trọng là graph F chỉ chứa 10 node hữu dụng, trong khi các graph còn lại có 11, và zip(*t) tự cắt về fragment ngắn nhất → output 10 ký tự. Đây gần như chắc chắn là chủ ý.
Mình cũng xác định cipher của Maybe sth in here.bin:
SHA256(b"zip-twist-v1|" + passphrase);rotation rất có khả năng là 7, lấy từ clue “top 7”.Một số cách đọc fragment từ initials cho ra geohash ở Arafura Sea, ví dụ vùng khoảng 10.8°S, 137.9°E, nên clue “ngoài biển” thực sự liên quan đến geohash. Tuy nhiên có nhiều permutation cũng rơi xuống biển nên chưa đủ để chọn key duy nhất.
Đặc biệt 8 screenshot có filename:
i s w g n r o }
và có thể sắp thành:
iswrong}
Đây gần như chắc chắn là một hint nằm trong challenge, nhưng chưa đủ để kết luận phần đầu flag là gì.
Mình đã brute các cách trích xuất phổ biến gồm surname initial/last letter, country initial, fantasy score, score mod 32, đảo đường đi, mirror đội hình, mọi permutation giữa các screenshot có cùng formation và 35 topological orders của graph SF. Chưa có candidate giải mã ra PNG/ZIP hợp lệ.
Một phát hiện mới giúp giải tiếp là kết quả World Cup 2026 thực sự xác định được các vòng cuối: Spain–Belgium ở QF, France–Spain ở SF và Spain–Argentina ở Final. (FBref) Vì vậy hướng đúng tiếp theo là map screenshot → round bằng điểm fantasy thực tế, thay vì map bằng formation.
Mình xác định đúng đối tượng OSINT là GitHub luonginfosec. Dấu vết hiện tại cho thấy account có các repo như Portswigger, key, CTF, android-reverse-engineering-skill-codex, v.v.
Clue:
“phần mềm AI được nhân viên dev lạm dụng”
rất đáng chú ý vì account có repo liên quan trực tiếp tới Codex. Nhưng câu quan trọng hơn là:
“lỡ tay push dự án lên mạng”
“mọi việc diễn qua nhanh chóng”
Nó cho thấy repo/commit rất có thể đã public trong thời gian ngắn rồi bị xóa/private. Search GitHub hiện tại sẽ không đủ.
Contribution graph của luonginfosec trong đầu tháng 8/2026 có activity vào 1, 2, 5, 6, 7, 10 và 12/8, trong khi các commit/repo public hiện index không giải thích sạch toàn bộ activity. Do đó mình đã chuyển sang hướng GitHub event history / GH Archive để truy repo đã biến mất. Đây nhiều khả năng là chìa khóa của Tiger Bạc.
Hiện tại mình chưa có 2 chuỗi PTITCTF{...} đủ bằng chứng để submit. Mình đã loại được khá nhiều ngõ cụt và xác định được cơ chế chính, nhưng nếu mình đưa flag lúc này thì sẽ chỉ là đoán — không đáng để bạn mất lượt submit.
Hai điểm còn thiếu chính xác là:
luonginfosec từ GitHub event history/cache.