This was a course project where teams build an FTP server and client supporting basic functionality. Each team would then try to exploit intentional vulnerabilities left behind in other teams' code and then patch the bugs to finish it off.
- Handles multiple clients through clone(2). (Can also be modified to use threads).
- Multiple parallel file GET and PUT requests through use of threads.
- Commands like login, ls, cd, echo, ping etc...
- Capability of adding any other command by specifying alias in config file of server.
- Supports reading commands from an input file and saving output to an output file.
- src: Contains server and client C++ code.
- include: Contains header file including common functionality of server and client.
- Run
make
in the home folder. - A bin folder containing the executables is created.
- Server is run without any arguments. It reads configuration from sploit.config
- Clinet is run as :
./client [ServerIP] [ServerPORT]
- Automated client is run as :
./client [ServerIP] [ServerPORT] [InputFile] [OutputFile]
- Format required for command executions can be found in inputfiles of phase2.
Reports, Phase2, Phase3 include the bug hunting and patching phases.