Git Product home page Git Product logo

www_wmap's Introduction


Wmap Web Portal

The web app is part of the OWASP Web Mapper Project. It's developed to help discover and keep track of web application asset with scale.

To further explore the full power of OWASP Wmap library, please refer to the WMAP backend library Git repository.

Demo

Click to watch the Youtube video below to see how to perform a successful application asset discovery: Web Mapper Demo

Demo Instance Access

The application is deployed into a demo instance at www.wmap.cloud. You can logon to it by using demo user 'admin' and password 'admin123'.

Technology Stacks

WMAP Web Portal depends on a number of open source projects to work properly:

  • Ruby on Rails 5.x - A web-application framework that includes everything.
  • Devise - Rails authentication and user session management solution.
  • Twitter Bootstrap - A great UI boilerplate for modern web apps.
  • jQuery - Great JavaScript library for JavaScript integration.
  • CodeMirror - CodeMirror is a versatile text editor implemented in JavaScript.
  • jstree - jsTree is a JavaScript based tree UI implementation.
  • Sidekiq - A background processing manager (asynchronous and non-blocking IO) for RoR.
  • Redis - A high performance in-memory key value pair data store.
  • MariaDB - A community supported fork of MySQL relational database.
  • wmap - Backend Web Mapper gem for the heavy lifting.
  • Postfix - Background email notification service.

Build and Run in Docker

If you have docker engine ready, you can have the app build and run in no time.

Why Docker

The docker is becoming popular in the development community. Because it can standadize the developing, building for everyone. The technology may also help deploy your customize app into your favorite cloud infrastructure later on.

Run In Docker

Use docker command 'docker-compose up' - it would run the app from the pre-build container images. (Please ensure your account has sufficient administrator / or sudo privilege to docker daemon and the host OS system resources) It should produce the output similar to below:

$ git clone https://github.com/yangsec888/www_wmap.git
$ cd www_wmap
$ docker-compose up -d
Starting wmap_db    ... done
Starting wmap_redis ... done
Starting www_wmap_sidekiq_1 ... done
Starting wmap_web           ... done
Starting www_wmap_nginx_1   ... done
Attaching to wmap_db, wmap_redis, www_wmap_sidekiq_1, wmap_web, www_wmap_nginx_1
wmap_db    | mariadb 20:25:19.20
...

Open a local browser and point it at 'http://localhost/'. You will see the app in action.

Docker Trouble-shooting

Following the onscreen error log when you bring up the containers. You can use the following docker command to verify the containers are running in your host

$ docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS          PORTS                    NAMES
8d4681f9dfef   yangsec888/www_wmap_sidekiq:latest   "sh ./config/docker/…"   48 minutes ago   Up 48 minutes   3000/tcp                 www_wmap_sidekiq_1
59769eec9fbb   nginx:1.16.1                         "nginx -g 'daemon of…"   2 hours ago      Up 48 minutes   0.0.0.0:80->80/tcp       www_wmap_nginx_1
6845611441b5   yangsec888/www_wmap_web:latest       "sh ./config/docker/…"   2 hours ago      Up 48 minutes   0.0.0.0:3000->3000/tcp   wmap_web
a1158c1d52e5   redis:alpine                         "docker-entrypoint.s…"   4 hours ago      Up 48 minutes   6379/tcp                 wmap_redis
293f77c2c5f5   bitnami/mariadb:10.3                 "/opt/bitnami/script…"   4 hours ago      Up 48 minutes   0.0.0.0:3306->3306/tcp   wmap_db

If you running into problem, you can refer to the docker online document for further assistance.

Build in Docker (Optional for developer)

You might want to customize the application to your organization need. In that case, you might want to re-build the docker image after the code change. You might also need to modify docker-compose.yml file after the change, before proceeding to the rebuild.

$ cd www_wmap
$ docker build . -t yangsec888/www_wmap_web:latest

In the above exmaple, docker command 'docker build . -t yangsec888/www_wmap_web:latest' will rebuild the main app image 'www_wmap_web' for me.

Linux Deployment

The project can be built, deployed and run in the linux distribution natively. For more information on local installation, please use the deployment example at Setup.md for your reference.

Usage

Under the home page, click on "Start" button to start. Follow the on-screen instructions, in order to launch a successfully WMAP discovery. The discovery result should be tracked under the "Discovery" menu tab.

LDAP Support

The application use devise_ldap_authenticatable module for Enterprise Single-Sign-On support. You would need to customize the ldap.yml file for such integration.

To Dos

  • Package this up into a docker containers
  • Write (integration, deployment) tests
  • Enhance performance (squeeze the next bit out of cpu / network IO )
  • Upgrade to Rails 6.x
  • Fix bugs!

www_wmap's People

Contributors

yangsec888 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.