Game Rules


In each lab (every week), you are asked to solve a set of problems. Each problem, you have to submit (via scoreboard,) two things, flag and write-up; flag you can get by exploiting the binary and in write-up, you should summarize what you’ve learned (short text).

Flag is a 512-byte hex string and you can find it in /proc/flag once you properly initialize the distributed VM.

$ cat /proc/flag

Your job is to read the flag by exploiting the distributed binaries.

Taking actions

  1. Download and install Virtualbox/Vagrant

Note: Ubuntu users may also use the following commands to get virtualbox and vagrant

[host] $ apt-get install virtualbox
[host] $ apt-get install vagrant
  1. Add guest OS and run the VM
# add 32-bit and 64-bit VMs
[host] $ vagrant box add ubuntu/trusty32
[host] $ vagrant box add ubuntu/trusty64

# in each VM (e.g., 32-bit)
[host] $ mkdir seclab32
[host] $ vagrant init ubuntu/trusty32
[host] $ vagrant up
[host] $ vagrant ssh
  1. Once you have the VM up and running, initialize your VM for this course:
# in VM, install git
[vm]   $ sudo apt-get install git

# it's time for setting up your environment
#  NOTE.
#    You should use 'cs6265'
[vm]   $ git clone git:// cs6265

[vm]   $ ls
README    ; detail info
bin/      ; scripts
lab/lab01 ; binaries for lab01
lab/lab02 ; ditto

# initialize your working environment (only need to be done once)
[vm]   $ ./bin/init
  1. To do labs:
# to do lab1
[vm]   $ git pull
[vm]   $ cd lab01
[vm]   $ cat README
[vm]   $ cd bomblab

# NOTE. test if you can submit a flag
[vm]   $ bin/submit -l lab -p problem -f /proc/flag

Feel free to ask for help on Piazza or during the office hour if you have trouble with the setup.

General rule

Except the first lab, if not specified, we follow the below grading rule in general:

  • Approximately 10 binaries you will get per lab every week.
  • 15 points (flag) + 5 points (write-up) = 20 points (each problem).
  • 200 points (20 points x 10 binaries) are the max, in theory.
  • 110 points are the expected maximum; score/110 is how we evaluate you.
  • Bonus: first and second fastest solvers will gain 10 and 5 bonus points in each problem.
  • If you gain more points, it will be reflected in the final/total points, shortly: \(max(1.0, \sum\limits_{i=1}^{\#lab} \frac{score_i}{130})\)
  • Late submission (within 1 week past deadline): 50% of scores.
  • Late submission (after 2 weeks past deadline): 25% of scores.