challenges involving breaking a web application. usually exploitation
of common implementation errors. php vulnerabilities are common.
reverse engineering. figuring out how something works without knowing
how it was made. usually involves studying assembly code.
exploitation of executable programs. usually you'll be given the binary
and/or source to research.
breaking cryptography. usually involves exploiting implementation flaws,
or some clever math.
forensic analysis. extraction of hidden data or information.
miscellaneous. anything which doesn't fall into one of the above
categories, but still requires clever thinking and some technical prowess.