Skip to content
This repository has been archived by the owner. It is now read-only.
ISU Spring 2014 National Cyber Defense Competition Web App
Branch: master
Clone or download
Pull request Compare This branch is 24 commits ahead, 3 commits behind benjholla:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
webapp
.gitignore
AUTHORS
CMakeLists.txt
COPYING
COPYING.lesser
RAPHT
README.md
backtrace.c
backtrace.h
deploy
deploynew
dispatcher.c
dispatcher.h
error.h
log.h
logger.c
logger.h
raphters.c
raphters.h
request.c
request.h
response.c
response.h
run-local

README.md

Team 1 ISU NCDC 2014 WebApp

This is Team 1's web app for the Spring 2014 ISU National Cyber Defense Competition. It is designed to be intentionally insecure, and while having some code security audits, should not be used in any production system.

Prereqs

  • Developed and tested on Ubuntu 13.10
  • sudo apt-get update
  • sudo apt-get install cmake
  • sudo apt-get install gcc
  • sudo apt-get install build-essential
  • sudo apt-get install libfcgi-dev
  • sudo apt-get install libunwind7-dev
  • sudo apt-get install liburiparser-dev
  • sudo apt-get install mysql-server
  • sudo apt-get install libmysqlclient-dev
  • sudo apt-get install cgilib
  • sudo apt-get install apache2

Setup

  • Add "ScriptAlias /webapp /usr/lib/cgi-bin/webapp" to /etc/apache2/conf-available/webapp.conf
  • sudo a2enconf webapp.conf

Development

Recommended IDE is Eclipse for C/C++

http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplersr1

http://www.cmake.org/Wiki/Eclipse_CDT4_Generator

Requires Java JRE:

  • sudo apt-get install openjdk-7-jre

To generate Eclipse project files run:

  • cd NCDC2014
  • mkdir -p build
  • cd build
  • cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../
  • Inside Eclipse, File->Import->General->Existing Projects into Workspace

Framework Background

This project is built on Raphters, a web framework for C based on the rapht architectural pattern (see RAPHT).

Q: Why would you want to build a web application in C? Didn't that idea die out with CGI?

A: Good question. C is fast and fun, when you use well-tested code it can be secure too. It also has a low memory foot-print. The aim of the project is that all of the usual functionality that you have in other frameworks (cookie handling, session management, templating etc) will be implemented via loosly coupled components with clean APIs.

Attributions

This project uses some works from the Noun Project that require attributions.

  • Shield designed by Nate Eul from the Noun Project
  • Conversation designed by Gregory Radek from the Noun Project
  • Network designed by iconoci from the Noun Project
  • Virus designed by Anu Prasadh Raja from the Noun Project
  • Meeting designed by Slava Strizh from the Noun Project
  • Cloud designed by Jan-Christoph Borchardt from the Noun Project

The project also makes use of Twitter Bootstrap

You can’t perform that action at this time.