Skip to content

VEMS is a deliberately created vulnerable application which can be used to learn and perform different web based attacks. It is a JAVA based web application using Java Server Pages (JSP) as server side scripting language and Oracle XE as database.

Notifications You must be signed in to change notification settings

NirCheckmarx/vems

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulnerable Employee Management System (VEMS)

Introduction

VEMS is a deliberately created vulnerable application which can be used to learn and perform different web based attacks. It is a JAVA based web application using Java Server Pages (JSP) as server side scripting language and Oracle XE as database.

Following are the web attacks that can be performed in VEMS:-

  • SQL Injection
  • Cross Site Scripting (XSS)
  • Clickjacking
  • Session Hijacking
  • Privilege Escalation
  • Authorization Bypass
  • Authentication Bypass
  • HTTP Response Splitting
  • Cross Site Request Forgery (CSRF)
  • Invalidated Redirect & Forward
  • Improper Error Handling
  • Directory Listing
  • Path Traversal
  • Insecure Direct Object Reference

User Roles

VEMS 1.0 consist of three different type of users

  • Super Admin
  • Admin
  • User

Super Admin: - This user has highest level of privilege and can perform following operations:-

  • Profile
  • View Own Profile
  • Edit Own Profile
  • Change Own Password
  • Change Own Security Question
  • Upload Own Profile Pic
  • Users
  • Assign Project to a User
  • Un-Assign Project to a User
  • View All User
  • View Other User
  • Edit Other User
  • Projects
  • Add Project
  • View All Project
  • View Specific Project
  • Edit Project Details
  • Dashboard
  • Grant Access to User
  • Revoke Access from User
  • Reset Other User’s Password
  • Sign Out

Admin: - This is an admin user and can perform following operations:-

  • Profile
  • View Own Profile
  • Edit Own Profile
  • Change Own Password
  • Change Own Security Question
  • Upload Own Profile Pic
  • Users
  • Assign Project to a User
  • Un-Assign Project to a User
  • View All User
  • View Other User
  • Edit Other User
  • Projects
  • Add Project
  • View All Project
  • View Specific Project
  • Edit Project Details
  • Sign Out

User: - This user has least privilege and can perform following operations:-

  • Profile
  • View Own Profile
  • Edit Own Profile
  • Change Own Password
  • Change Own Security Question
  • Upload Own Profile Pic
  • Sign Out

Database Structure

VEMS 1.0 consist of three tables

  • Users
  • Username
  • Email
  • password
  • firstname
  • lastname
  • contactnumber
  • mailingaddress
  • securityquestion
  • securityanswer
  • profilepic
  • role
  • status
  • Projects
  • projectId
  • ProjectName
  • Start Date
  • enddata
  • UserProjectMapping
  • username
  • projectId

Configuration

  • Run following database queries before running the application:-
  • create table users (username varchar2(100),email varchar2(100),password varchar2(100),firstname varchar2(100),lastname varchar2(100),contactnumber varchar2(100),mailingaddress varchar2(100),securityquestion varchar2(100),securityanswer varchar2(100),profilepic varchar2(100),role varchar2(100),status varchar2(50))
  • create table projects (projectid varchar2(100),projectname varchar2(100),startdate varchar2(100),enddate varchar2(100))
  • create table UserProjectMapping (username varchar2(100),projectid varchar2(100))
  • Update the deployment descriptor (web.xml) file as per your database configuration. It can be found inside WEB-INF folder. Default values are :-
  • dbUserName = hr
  • dbPassword = asdf
  • jdbcDriver = oracle.jdbc.driver.OracleDriver
  • urlString = jdbc:oracle:thin:@localhost:1521:XE
  • All external libraries can be found in WEB-INF/lib folder.
  • All images (Profile Pic) will get uploaded in upload directory.

NOTE:- To use this application, user first need to create a “Super Admin” account manually. This can be done easily using above given SQL queries.

NOTE:- For successful login value for status column should be “1”.

NOTE:- While creating super admin account value for role column should be “Super Admin”.

NOTE:- SQL backup can be found in “sql backup” folder.

  • Excluding the .git and .github folders from the zip file is highly important! Otherwise each commit will triger a full scan due to changes in the files under these folders
  • To recursively exclude all files under any folder named "tests" for example, add the following to the -cx-flow.zip-exclude line:
    --cx-flow.zip-exclude="\.git\/.*,\.github\/.*,tests\/.*,.+\/tests\/.*"

About

VEMS is a deliberately created vulnerable application which can be used to learn and perform different web based attacks. It is a JAVA based web application using Java Server Pages (JSP) as server side scripting language and Oracle XE as database.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 48.2%
  • CSS 43.3%
  • JavaScript 8.5%