Description
My team has been working very hard on new features for our flag printing program! I wonder how they'll work together?
Download the provided challenge.zip archive.
Extract it locally and move into the drop-in repository where the Git history lives.
wget https://artifacts.picoctf.net/c_titan/71/challenge.zip && \
unzip challenge.zip && \
cd drop-in/
Solution
This challenge builds on the Git fundamentals from Time Machine and Commitment Issues. For file-specific investigation, see Blame Game. Each feature branch here contains a slice of the flag inside flag.py. You can either read them one at a time or merge them back into main to watch Git handle the conflicts.
- Step 1List every branchgit branch -a reveals the feature/part-* branches that contain pieces of the flag. They're local copies already, so you can check them out directly.git branch -a
- Step 2Inspect each feature branchCheckout each branch and read flag.py. Every branch prints a different slice of the flag, intentionally split to encourage review of multiple branches.git checkout feature/part-1 && cat flag.pyRepeat for feature/part-2 and feature/part-3 to gather the middle and final segments.
- Step 3Optional: merge for a single viewIf you prefer one unified output, merge the feature branches into main (in any order) and resolve the minor conflicts. The combined flag prints once the merges complete.git checkout main && \ git merge feature/part-1 feature/part-2 feature/part-3
Flag
picoCTF{t3@mw0rk_m@k3s_th3_dr3@m_w0rk_4c2...}
Concatenate the outputs from each feature/part-* branch (or resolve the merged file) to reveal the full flag above.