Securing Smart Contracts

Summer 2022

Scoreboard · Submit Flags

Smart Contract Security
for Beginners

Fundamentals

H 530: Blockchains (15)
C 330: MetaMask Wallet (15)

Smart Contracts

C 351: Making a Solidity Contract (10)
C 352: Making a Coin with Solidity (10)
C 353: Reentrancy Attack (25)
C 354: Winning an Auction (10)
C 355: Exploiting a Fallback Function (10)
C 356: Phishing a Contract that Uses tx.origin (10)
H 532: Hacking PoWHCoin (15)

Capture the Ether

C 600: Warmup: Deploy a Contract (15)
C 601: Warmup: Call Me (15)
C 602: Warmup: Choose a Nickname (15)
C 603: Guess the Number (15)
C 604: Guess the Secret Number (15)
C 605: Guess the Random Number (25)

Ethereum

Wallets

C 360: Making a NFT (15)
M 101: Genymotion Android Emulator (15)
C 334: MetaMask Mobile Wallet (10)

Smart Contracts

C 350: CryptoZombies (60)
C 391: Glow (20)

Servers

ED 30: Linux Virtual Machine (15)
C 340: Making a Private Ethereum Blockchain (10)
C 342: MetaMask with Local Testnet (10)
C 343: Mining Sepolia Testnet Ether (20)

Cryptocurrency

C 380: Radix Wallet (20)
C 390: Exodus Wallet (15)
C 303: Double-Spend (51% Attack) on Bitcoin (20)
C 370: Stellar (15)
C 701: Making a Solana Smart Contract (15)
C 702: Phantom Wallet for Solana (15)

Blockchains

H 201: Google Cloud Linux Server (10)
C 311: Multichain (20)
C 312: Joining Samchain (20)
H 531: Hyperledger IROHA (15)
C 525: Lightning Network (20)
C 526: Phoenix Wallet and Lightning Network (20)

Basics

C 101. Binary Games (25 pts + 15)
C 102. Caesar Cipher (30)   (requires windows)
C 103. Substitution Cipher (20)   (requires windows)
C 105. Two-Time Pad (20 pts + 65)
C 106. The Rho Method (15 + 15)

Extra Credit

C 104. Obfuscation CTF (49 pts)   
H 221: Google Cloud Windows Server (10 pts)   


CryptoHack (extra credit)

AES Modes

C 201. Cracking AES (With Weak Keys)   (requires windows) (10 + 10)
C 202. ECB v. CBC Modes with Python 3 (10 + 10)
C 203. PBKDF2 and AES (90)
Python3 Conversions
Execute Python Online

RSA

C 401. RSA Using Very Small Keys (15 + 15)
C 402. Cracking a Short RSA Key (20 + 30)
C 403. RSA Key Formats (10 + 30)

Sodium

C 430: Private-Key Encryption With Sodium (65)
C 431: Public-Key Encryption With Sodium (25)

Math

C 501. Padding Oracle Attack (20 + 50)
C 502. Existential Forgery Attack on RSA Signatures (10 + 20) (Updated 11-5-20)
C 503. Finding Large Primes (10 + 10)
C 504. Factoring Large Numbers (10 + 10)
C 506. Baby-Step, Giant-Step Attack on DLP (50)
C 507. Pollard-Rho Attack on DLP (55)
C 510. Quantum Computing (20)
C 521: Homomorphic Encryption with SEAL (30)
C 522: IBM Homomorphic Encryption (25)
C 523: zk-SNARKs (20)
C 524: Elliptic Curves and Schnorr Signatures (75)

Python Basics

VP 10: Python 3 Setup  10
VP 100: Strings  50 extra
VP 110: Bytes and Files  25 extra

Cryptography with Python

VP 300: Password Hashes  85 extra
VP 301: Caesar Cipher  52 extra
VP 310: XOR  65 extra
VP 320: AES  55 extra
VP 330: Argon2 Hashes  47 extra

Archived Videos

WASTC Summer 2022

Archived Scores

Fall 2021
BSidesSF 2022
WASTC Sum 2022
TX WC Sum 2022
DEF CON Sum 2022
8-12-22 Updated after DEF CON