<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oliver+M.</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oliver+M."/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Oliver_M."/>
		<updated>2026-05-28T08:41:10Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191773</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191773"/>
				<updated>2015-03-19T15:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: /* News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:90px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Incubator_big.jpg|link=OWASP_Project_Stages#tab=Incubator_Projects]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
Release:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-08.zip/download WebSpa v0.8]&lt;br /&gt;
&lt;br /&gt;
Source:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/OWASP/WebSpa/archive/v0.8.zip| WebSpa v0.8.zip]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/OWASP/WebSpa/archive/v0.8.tar.gz| WebSpa v0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for WebSpa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for WebSpa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [19 Feb 2015] The source WebSpa code repository has been migrated to GitHub. The compiled releases (.jar) are still made available on SourceForge.&lt;br /&gt;
* [17 Feb 2015] WebSpa has a new contributor – Daniel Imber. Dan, welcome to the team!&lt;br /&gt;
* [12 Jan 2015] Patryk Arciszewski decided to retire from the project. Patryk, thank you for your good work and may the Power of SPA be with you.&lt;br /&gt;
* [23 Nov 2014] Version 0.8 has been released and can now be found in the download section. We are proud to offer a working, stable proof-of-concept of WebSpa.&lt;br /&gt;
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł, welcome to the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Does WebSpa supports older versions of Java?&lt;br /&gt;
: No. WebSpa is tested with an up-to-date JRE package, thus to run WebSpa a JRE 1.7 or greater is needed.&lt;br /&gt;
Using older versions of Java may lead to unexpected system behaviors.&lt;br /&gt;
&lt;br /&gt;
; What does the ASCII-Art for WebSpa look like?&lt;br /&gt;
                    __                                           &lt;br /&gt;
                   /\ \                                          &lt;br /&gt;
   __  __  __     __\ \ \____             ____  _____      __     &lt;br /&gt;
 /\ \/\ \/\ \  /'__`\ \ '__`\  _______  /',__\/\ '__`\  /'__`\   &lt;br /&gt;
 \ \ \_/ \_/ \/\  __/\ \ \L\ \/\______\/\__, `\ \ \L\ \/\ \L\.\_ &lt;br /&gt;
  \ \___x___/'\ \____\\ \_,__/\/______/\/\____/\ \ ,__/\ \__/.\_\&lt;br /&gt;
   \/__//__/   \/____/ \/___/           \/___/  \ \ \/  \/__/\/_/&lt;br /&gt;
                                                 \ \_\           &lt;br /&gt;
                                                  \/_/           &lt;br /&gt;
&lt;br /&gt;
The font is Larry 3D generated [http://patorjk.com/software/taag/#p=display&amp;amp;f=Larry%203D&amp;amp;t=web-spa here].&lt;br /&gt;
&lt;br /&gt;
; Who are the actors required in order to use the WebSpa tool?&lt;br /&gt;
&lt;br /&gt;
There are two actors, the WebSpa administrator and the WebSpa user. Ultimately, they could be the same person. The administrator agrees with each user what each of their allowed O/S commands are, while the user, well, executes these commands on the server by using the client. &lt;br /&gt;
&lt;br /&gt;
; How does the crypto of WebSpa work?&lt;br /&gt;
: From the perspective of cryptographic engineering, WebSpa uses a hash [http://en.wikipedia.org/wiki/Commitment_scheme commitment scheme], where the commit phase during which a value is chosen is done using an out of band channel. WebSpa focuses on receiving a value specified through a single request from the client and processing it on the server. &lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* [[User:Yiannis|Yiannis Pavlosoglou]] - Inception &amp;amp; Development &lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Daniel Imber - Development &amp;amp; Refactoring&lt;br /&gt;
* [[User:Oliver_M.|Oliver Merki]] - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
* Patryk Arciszewski&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request, but also offer improved usability features, which will simplify installing, configuring and running WebSpa.. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-08.zip/download Release 0.8 (Q4/2014)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 is sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 - FIXED: Modified the checking of 2 arrays being equal to be constant in time (Ticket #27)&lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if they want to connect web servers with untrusted certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191768</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191768"/>
				<updated>2015-03-19T15:35:58Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Updated &amp;quot;Quick Download&amp;quot; links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:90px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Incubator_big.jpg|link=OWASP_Project_Stages#tab=Incubator_Projects]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
Release:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-08.zip/download WebSpa v0.8]&lt;br /&gt;
&lt;br /&gt;
Source:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/OWASP/WebSpa/archive/v0.8.zip| WebSpa v0.8.zip]&amp;lt;br&amp;gt;&lt;br /&gt;
[https://github.com/OWASP/WebSpa/archive/v0.8.tar.gz| WebSpa v0.8.tar.gz]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for WebSpa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for WebSpa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [23 Nov 2014] Version 0.8 has been release and can now be found in the download section. We are proud to offer a working, stable proof-of-concept of WebSpa.&lt;br /&gt;
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Does WebSpa supports older versions of Java?&lt;br /&gt;
: No. WebSpa is tested with an up-to-date JRE package, thus to run WebSpa a JRE 1.7 or greater is needed.&lt;br /&gt;
Using older versions of Java may lead to unexpected system behaviors.&lt;br /&gt;
&lt;br /&gt;
; What does the ASCII-Art for WebSpa look like?&lt;br /&gt;
                    __                                           &lt;br /&gt;
                   /\ \                                          &lt;br /&gt;
   __  __  __     __\ \ \____             ____  _____      __     &lt;br /&gt;
 /\ \/\ \/\ \  /'__`\ \ '__`\  _______  /',__\/\ '__`\  /'__`\   &lt;br /&gt;
 \ \ \_/ \_/ \/\  __/\ \ \L\ \/\______\/\__, `\ \ \L\ \/\ \L\.\_ &lt;br /&gt;
  \ \___x___/'\ \____\\ \_,__/\/______/\/\____/\ \ ,__/\ \__/.\_\&lt;br /&gt;
   \/__//__/   \/____/ \/___/           \/___/  \ \ \/  \/__/\/_/&lt;br /&gt;
                                                 \ \_\           &lt;br /&gt;
                                                  \/_/           &lt;br /&gt;
&lt;br /&gt;
The font is Larry 3D generated [http://patorjk.com/software/taag/#p=display&amp;amp;f=Larry%203D&amp;amp;t=web-spa here].&lt;br /&gt;
&lt;br /&gt;
; Who are the actors required in order to use the WebSpa tool?&lt;br /&gt;
&lt;br /&gt;
There are two actors, the WebSpa administrator and the WebSpa user. Ultimately, they could be the same person. The administrator agrees with each user what each of their allowed O/S commands are, while the user, well, executes these commands on the server by using the client. &lt;br /&gt;
&lt;br /&gt;
; How does the crypto of WebSpa work?&lt;br /&gt;
: From the perspective of cryptographic engineering, WebSpa uses a hash [http://en.wikipedia.org/wiki/Commitment_scheme commitment scheme], where the commit phase during which a value is chosen is done using an out of band channel. WebSpa focuses on receiving a value specified through a single request from the client and processing it on the server. &lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* [[User:Yiannis|Yiannis Pavlosoglou]] - Inception &amp;amp; Development &lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Daniel Imber - Development &amp;amp; Refactoring&lt;br /&gt;
* [[User:Oliver_M.|Oliver Merki]] - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
* Patryk Arciszewski&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request, but also offer improved usability features, which will simplify installing, configuring and running WebSpa.. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-08.zip/download Release 0.8 (Q4/2014)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 is sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 - FIXED: Modified the checking of 2 arrays being equal to be constant in time (Ticket #27)&lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if they want to connect web servers with untrusted certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191716</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=191716"/>
				<updated>2015-03-19T06:26:47Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Updated contributors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;height:90px;border:0,margin:0;overflow: hidden;&amp;quot;&amp;gt;[[File:Incubator_big.jpg|link=OWASP_Project_Stages#tab=Incubator_Projects]]&amp;lt;/div&amp;gt;&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-08.zip/download WebSpa v0.8]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for WebSpa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for WebSpa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [23 Nov 2014] Version 0.8 has been release and can now be found in the download section. We are proud to offer a working, stable proof-of-concept of WebSpa.&lt;br /&gt;
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Does WebSpa supports older versions of Java?&lt;br /&gt;
: No. WebSpa is tested with an up-to-date JRE package, thus to run WebSpa a JRE 1.7 or greater is needed.&lt;br /&gt;
Using older versions of Java may lead to unexpected system behaviors.&lt;br /&gt;
&lt;br /&gt;
; What does the ASCII-Art for WebSpa look like?&lt;br /&gt;
                    __                                           &lt;br /&gt;
                   /\ \                                          &lt;br /&gt;
   __  __  __     __\ \ \____             ____  _____      __     &lt;br /&gt;
 /\ \/\ \/\ \  /'__`\ \ '__`\  _______  /',__\/\ '__`\  /'__`\   &lt;br /&gt;
 \ \ \_/ \_/ \/\  __/\ \ \L\ \/\______\/\__, `\ \ \L\ \/\ \L\.\_ &lt;br /&gt;
  \ \___x___/'\ \____\\ \_,__/\/______/\/\____/\ \ ,__/\ \__/.\_\&lt;br /&gt;
   \/__//__/   \/____/ \/___/           \/___/  \ \ \/  \/__/\/_/&lt;br /&gt;
                                                 \ \_\           &lt;br /&gt;
                                                  \/_/           &lt;br /&gt;
&lt;br /&gt;
The font is Larry 3D generated [http://patorjk.com/software/taag/#p=display&amp;amp;f=Larry%203D&amp;amp;t=web-spa here].&lt;br /&gt;
&lt;br /&gt;
; Who are the actors required in order to use the WebSpa tool?&lt;br /&gt;
&lt;br /&gt;
There are two actors, the WebSpa administrator and the WebSpa user. Ultimately, they could be the same person. The administrator agrees with each user what each of their allowed O/S commands are, while the user, well, executes these commands on the server by using the client. &lt;br /&gt;
&lt;br /&gt;
; How does the crypto of WebSpa work?&lt;br /&gt;
: From the perspective of cryptographic engineering, WebSpa uses a hash [http://en.wikipedia.org/wiki/Commitment_scheme commitment scheme], where the commit phase during which a value is chosen is done using an out of band channel. WebSpa focuses on receiving a value specified through a single request from the client and processing it on the server. &lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* [[User:Yiannis|Yiannis Pavlosoglou]] - Inception &amp;amp; Development &lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Daniel Imber - Development &amp;amp; Refactoring&lt;br /&gt;
* [[User:Oliver_M.|Oliver Merki]] - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
* Patryk Arciszewski&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request, but also offer improved usability features, which will simplify installing, configuring and running WebSpa.. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-08.zip/download Release 0.8 (Q4/2014)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 is sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 - FIXED: Modified the checking of 2 arrays being equal to be constant in time (Ticket #27)&lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if they want to connect web servers with untrusted certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Oliver_M.&amp;diff=185784</id>
		<title>User:Oliver M.</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Oliver_M.&amp;diff=185784"/>
				<updated>2014-11-23T18:59:58Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: update CV and project involvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oliver grew up in a world of monochrome displays, needle printers, QuickBASIC and dial-up connections. He has always been very interested in information technology and has always had a high affinity for IT security. After a commercial apprenticeship, he studied IT at Zurich University of Applied Sciences (ZHAW) and wrote his bachelor's thesis on the topic 'BYOD from a risk management perspective'.&lt;br /&gt;
&lt;br /&gt;
In his professional life, Oliver works as an ICT Security &amp;amp; Risk Engineer for one of Switzerland's biggest hospitals and only recently passed the CISM and CISSP exams. Previously, he had been working as an IT Risk Assessor and Vulnerability Manager for a major Swiss bank for several years.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Application Security &amp;amp; Project Involvement'''&lt;br /&gt;
*2013 - OWASP WebSpa Project ([https://www.owasp.org/index.php/OWASP_WebSpa_Project WebSpa])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Contact'''&lt;br /&gt;
&lt;br /&gt;
Oliver Merki &amp;lt;br&amp;gt; oliver.merki@owasp.org&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=185783</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=185783"/>
				<updated>2014-11-23T18:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Release 0.8; updated Roadmap &amp;amp; News sections as well as the Quick Download link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-08.zip/download WebSpa v0.8]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for WebSpa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for WebSpa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [23 Nov 2014] Version 0.8 has been release and can now be found in the download section. We are proud to offer a working, stable proof-of-concept of WebSpa.&lt;br /&gt;
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Does WebSpa supports older versions of Java?&lt;br /&gt;
: No. WebSpa is tested with an up-to-date JRE package, thus to run WebSpa a JRE 1.7 or greater is needed.&lt;br /&gt;
Using older versions of Java may lead to unexpected system behaviors.&lt;br /&gt;
&lt;br /&gt;
; What does the ASCII-Art for WebSpa look like?&lt;br /&gt;
                    __                                           &lt;br /&gt;
                   /\ \                                          &lt;br /&gt;
   __  __  __     __\ \ \____             ____  _____      __     &lt;br /&gt;
 /\ \/\ \/\ \  /'__`\ \ '__`\  _______  /',__\/\ '__`\  /'__`\   &lt;br /&gt;
 \ \ \_/ \_/ \/\  __/\ \ \L\ \/\______\/\__, `\ \ \L\ \/\ \L\.\_ &lt;br /&gt;
  \ \___x___/'\ \____\\ \_,__/\/______/\/\____/\ \ ,__/\ \__/.\_\&lt;br /&gt;
   \/__//__/   \/____/ \/___/           \/___/  \ \ \/  \/__/\/_/&lt;br /&gt;
                                                 \ \_\           &lt;br /&gt;
                                                  \/_/           &lt;br /&gt;
&lt;br /&gt;
The font is Larry 3D generated [http://patorjk.com/software/taag/#p=display&amp;amp;f=Larry%203D&amp;amp;t=web-spa here].&lt;br /&gt;
&lt;br /&gt;
; Who are the actors required in order to use the WebSpa tool?&lt;br /&gt;
&lt;br /&gt;
There are two actors, the WebSpa administrator and the WebSpa user. Ultimately, they could be the same person. The administrator agrees with each user what each of their allowed O/S commands are, while the user, well, executes these commands on the server by using the client. &lt;br /&gt;
&lt;br /&gt;
; How does the crypto of WebSpa work?&lt;br /&gt;
: From the perspective of cryptographic engineering, WebSpa uses a hash [http://en.wikipedia.org/wiki/Commitment_scheme commitment scheme], where the commit phase during which a value is chosen is done using an out of band channel. WebSpa focuses on receiving a value specified through a single request from the client and processing it on the server. &lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* [[User:Yiannis|Yiannis Pavlosoglou]] - Inception &amp;amp; Development &lt;br /&gt;
* Patryk Arciszewski - Theoretician &amp;amp; Documentation&lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* [[User:Oliver_M.|Oliver Merki]] - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request, but also offer improved usability features, which will simplify installing, configuring and running WebSpa.. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-08.zip/download Release 0.8 (Q4/2014)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 is sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 - FIXED: Modified the checking of 2 arrays being equal to be constant in time (Ticket #27)&lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if they want to connect web servers with untrusted certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=182059</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=182059"/>
				<updated>2014-09-09T20:01:42Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Added link to the OWASP Connector newsletter in the news section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named WebSpa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; WebSpa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-07.zip/download WebSpa v0.7]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using WebSpa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with WebSpa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for WebSpa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for WebSpa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [19 Aug 2014] Our project was featured in the OWASP Connector newsletter. [http://hosted-p0.vresp.com/1479611/4d8d3315c2/ARCHIVE (link)]&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from Google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* Yiannis Pavlosoglou - Inception &amp;amp; Development &lt;br /&gt;
* Patryk Arciszewski - Theoretician &amp;amp; Documentation&lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Oliver Merki - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
&lt;br /&gt;
== Release 0.85 (Q1/2015) ==&lt;br /&gt;
WebSpa_v0.85 will offer improved usability features, which will simplify installing, configuring and running WebSpa. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== Release 0.8 (Q4/2014) ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 will be sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 27	Arrays.equals is not a constant time function	 &lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if he wants to connect web servers with unknown/untrusted/self-signed certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=181935</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=181935"/>
				<updated>2014-09-08T04:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Added definition of &amp;quot;Web Knocking&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking as &amp;quot;a form of host-to-host communication in which information flows across erroneous URLs&amp;quot;. Finally, in an attempt to mirror the operation of Single Packet Authorisation (SPA), the entirety of a user's action is submitted through a single GET request.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named Web-Spa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; web-spa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-07.zip/download WebSpa v0.7]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using web-spa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with Web-Spa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for web-spa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for web-spa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* Yiannis Pavlosoglou - Inception &amp;amp; Development &lt;br /&gt;
* Patryk Arciszewski - Theoretician &amp;amp; Documentation&lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Oliver Merki - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
&lt;br /&gt;
== Release 0.85 (Q1/2015) ==&lt;br /&gt;
WebSpa_v0.85 will offer improved usability features, which will simplify installing, configuring and running WebSpa. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== Release 0.8 (Q4/2014) ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 will be sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 27	Arrays.equals is not a constant time function	 &lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if he wants to connect web servers with unknown/untrusted/self-signed certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=181189</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=181189"/>
				<updated>2014-08-26T18:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Updated project roadmap for WebSpa v0.8 - v0.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named Web-Spa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; web-spa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/webspa/files/webspa-07.zip/download WebSpa v0.7]&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|S386azVcj-c|300|right|Linux Poweroff on Apache via Web Knocking with Web-Spa (_v0.7) }} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.5) }} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|_VU26ZGG7D8|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4 )}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|pKF_NxHnoyA|300|right|Enabling SSH via Web Knocking with Web-Spa (_v0.4) }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using web-spa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with Web-Spa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for web-spa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for web-spa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [07 May 2014] Added four video links in the respective &amp;quot;Video&amp;quot; tab, referencing YouTube&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* Yiannis Pavlosoglou - Inception &amp;amp; Development &lt;br /&gt;
* Patryk Arciszewski - Theoretician &amp;amp; Documentation&lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Oliver Merki - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q3/2015) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will be major release and include a comprehensive redesign of the WebKnock format in order to improve overall security and robustness of the request. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 44	New WebKnock request format should be defined&lt;br /&gt;
 42	Do not limit the web knock to 100 characters, instead use SHA-512 lengths	 &lt;br /&gt;
 35	A threat model for WebSpa should be created and reviewed	 &lt;br /&gt;
 33	Apache should be replaced by nginx	 &lt;br /&gt;
&lt;br /&gt;
== Release 0.85 (Q1/2015) ==&lt;br /&gt;
WebSpa_v0.85 will offer improved usability features, which will simplify installing, configuring and running WebSpa. The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 40	Log to /​var/​log instead of a log.txt file	&lt;br /&gt;
 15	Add easy way to run the server as a background daemon	  &lt;br /&gt;
&lt;br /&gt;
== Release 0.8 (Q4/2014) ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 will be sort of a proof-of-concept of WebSpa. A stable version to demonstrate the concept of WebKnocking, however, with some limitations with regards to usability/configuration and modularity (e.g. changing the hashing algorithm). The tickets for this release are:&lt;br /&gt;
&lt;br /&gt;
 43	Change SSL configuration to allow wget&lt;br /&gt;
 41	WebSpa administrator to WebSpa user output	 &lt;br /&gt;
 38	umask 077 should be added to webspa.sh	 &lt;br /&gt;
 32	A known_hosts file should be used to maintain the list of successfully verified keys	 &lt;br /&gt;
 31	Verification of server's public key fingerprint should be possible	 &lt;br /&gt;
 30	Help Files Update (0.8)	 &lt;br /&gt;
 27	Arrays.equals is not a constant time function	 &lt;br /&gt;
 2	Create maven build task for release	 &lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if he wants to connect web servers with unknown/untrusted/self-signed certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=173426</id>
		<title>OWASP WebSpa Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_WebSpa_Project&amp;diff=173426"/>
				<updated>2014-04-24T20:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: WebSpa Release 0.7; New team member added to the people section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Main=&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding: 0;margin:0;margin-top:10px;text-align:left;&amp;quot; |-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==OWASP WebSpa Project==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is a Java web knocking tool for sending a single HTTP/S request to your web server in order to authorize the execution of a premeditated Operating System (O/S) command. &lt;br /&gt;
It provides a cryptographically protected &amp;quot;open sesame&amp;quot; mechanism on the web application layer, comparable to well-known port-knocking techniques.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
This project implements the concept of web knocking by offering a jar file that 'tails' the access log of an existing web server. A user submits a specially crafted URL, therefore executing a predefined O/S command. No new ports or services are created.&lt;br /&gt;
&lt;br /&gt;
Similarly to traditional network port-knocking schemes, the OWASP WebSpa Project aims to create a covert channel of communication for O/S commands over the web application layer. This channel is by no means bi-directional: It is only the client that can issue commands to the server. The inverse, i.e. the server issuing commands to the client, is not an option within the current version.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.&lt;br /&gt;
&lt;br /&gt;
The source code that comes with the OWASP WebSpa Project in the form of the tool named Web-Spa is released as open source software under the terms of the [http://www.gnu.org/licenses/quick-guide-gplv3.html GNU Public License (GPL) version 3]. For reference, the full text of the GPL_v3 can be downloaded from the [http://www.fsf.org/ Free Software Foundation]. There are no plans to change the license; web-spa will always remain an open source project free for use by anyone subject to the terms of the license. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== What is WebSpa? ==&lt;br /&gt;
&lt;br /&gt;
OWASP WebSpa provides:&lt;br /&gt;
&lt;br /&gt;
* A secure channel for executing premeditated O/S commands on your web server&lt;br /&gt;
* A resource-efficient single jar-file that can either be run as server, or client application, depending on the command line parameters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Presentation ==&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/projects/webspa/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;  style=&amp;quot;padding-left:25px;width:200px;&amp;quot; | &lt;br /&gt;
&lt;br /&gt;
== Quick Download ==&lt;br /&gt;
&lt;br /&gt;
* http://sourceforge.net/projects/webspa/files/latest/download?source=files&lt;br /&gt;
&lt;br /&gt;
==Classifications==&lt;br /&gt;
&lt;br /&gt;
   {| width=&amp;quot;200&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot; rowspan=&amp;quot;2&amp;quot;| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]]&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-builders-small.png|link=]]  &lt;br /&gt;
   |-&lt;br /&gt;
   | align=&amp;quot;center&amp;quot; valign=&amp;quot;top&amp;quot; width=&amp;quot;50%&amp;quot;| [[File:Owasp-defenders-small.png|link=]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]]&lt;br /&gt;
   |-&lt;br /&gt;
   | colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;  | [[File:Project_Type_Files_CODE.jpg|link=]]&lt;br /&gt;
   |}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Videos =&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|OWASP Web Knocking Project Demo}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|OWASP Web Knocking Project Demo}} &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|OWASP Web Knocking Project Demo}} &lt;br /&gt;
|&lt;br /&gt;
{{#ev:youtube|eHlYnWyf35E|300|right|OWASP Web Knocking Project Demo}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tutorial =&lt;br /&gt;
&lt;br /&gt;
== Supporting Documentation ==&lt;br /&gt;
&lt;br /&gt;
The discrepant event discussed herein is web knocking. Within the latest [http://sourceforge.net/projects/webspa/files/latest/download?source=directory download] you can find three documents with the purpose of describing how WebSpa can be used. The three documents are:&lt;br /&gt;
&lt;br /&gt;
* ''''WebSpa Administration Guide''' This document describes how to setup and use the server component. It details how to create new users and add new action numbers with respective O/S commands assigned to them&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa Specification Guide''' This document describes the actual design detailing the use case, specification, requirements and actual attacks, which this tool has been engineered to withstand&lt;br /&gt;
&lt;br /&gt;
* '''WebSpa User Guide''' This document describes how to use the client for issuing commands through a URL request to a web server&lt;br /&gt;
&lt;br /&gt;
The administration guide aims to enable anyone who would be interested in using WebSpa to be able to setup the server side component of it. After configuring the server component of WebSpa, you'll be ready to use the corresponding client for issuing direct actions as O/S commands to it.&lt;br /&gt;
&lt;br /&gt;
If this is your first time using WebSpa, please note that the server operations described in this document, will not work if a WebSpa client does not submit a web-knock to your web server in a timely manner.&lt;br /&gt;
&lt;br /&gt;
Thus, knowing a client implementation goes hand-in-hand with a server instance for it, please also have a look at the WebSpa user guide document to see how the two can be used in tandem. &lt;br /&gt;
&lt;br /&gt;
The user guide aims to enable anyone who would be interested in using web-spa to do so. As soon as you install the server side component and decide what actions to allow, you'll be ready to use the corresponding client for issuing direct actions that work for you.&lt;br /&gt;
&lt;br /&gt;
Finally, the specification guide aims to enable anyone who would be interested in implementing their own version of WebSpa to do so.&lt;br /&gt;
&lt;br /&gt;
== HelloWorld! Enabling SSH via Web Knocking with WebSpa ==&lt;br /&gt;
&lt;br /&gt;
In this section we describe the setup you should follow in order to get to the stage of being able to execute the video entitled: [https://www.youtube.com/watch?v=eHlYnWyf35E Enabling SSH via Web Knocking with Web-Spa (_v0.5)] on your server.&lt;br /&gt;
&lt;br /&gt;
We assume you can SSH into your web server using the user 'web-spa'. We also assume that the user 'web-spa' has permissions to run the necessary service start and stop commands for this service. So, let's login to the box and get the latest WebSpa download:&lt;br /&gt;
&lt;br /&gt;
 ssh web-spa@web.spa.seleucus.net&lt;br /&gt;
 web-spa@web:~$ cd /tmp&lt;br /&gt;
 web-spa@web:/tmp$ wget https://downloads.sourceforge.net/project/webspa/webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
It would be wise at this stage to check the SHA1 digest of what we just downloaded. Sourceforge publishes the SHA1 of all files available for download; copying the value into our command prompt yields:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ echo &amp;quot;a630f23f88c49d02b5895a3d7e16aad245c387f3 *webspa-06.zip&amp;quot; | sha1sum -c -&lt;br /&gt;
 webspa-06.zip: OK&lt;br /&gt;
 web-spa@web:/tmp$ &lt;br /&gt;
&lt;br /&gt;
Ok, so we have downloaded something that we can vouch for-ish. Let's extract and setup.&lt;br /&gt;
&lt;br /&gt;
 unzip webspa-06.zip&lt;br /&gt;
&lt;br /&gt;
A lot of noise comes back from this command. Apologies, different groups have clearly stated they have wanted the source code as well the documentation to be included within the download. Let's have a look at the install file:&lt;br /&gt;
&lt;br /&gt;
 =================================================&lt;br /&gt;
 - Prerequisites for web-spa&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
 The following programs must be installed in order&lt;br /&gt;
 for web-spa to run:&lt;br /&gt;
&lt;br /&gt;
 - Java 1.6 or later&lt;br /&gt;
&lt;br /&gt;
If you don't have java installed, consider using the following command: &lt;br /&gt;
&lt;br /&gt;
 sudo aptitude install openjdk-7-jre&lt;br /&gt;
&lt;br /&gt;
This will meet the one prerequisite for using WebSpa. As this is a production server, docs and src folders will not be missed. Also, we like to store things in /opt, ergo:&lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/src/&lt;br /&gt;
 web-spa@web:/tmp$ rm -frv /tmp/web-spa-0.6/docs/&lt;br /&gt;
 web-spa@web:/tmp$ sudo mv -v /tmp/web-spa-0.6/ /opt&lt;br /&gt;
&lt;br /&gt;
We now have WebSpa in /opt, let's run the server and create some users. &lt;br /&gt;
&lt;br /&gt;
 web-spa@web:/tmp$ cd /opt/web-spa-0.6/&lt;br /&gt;
 web-spa@web:/opt/web-spa-0.6$ java -jar web-spa-0.6.jar -server&lt;br /&gt;
&lt;br /&gt;
 Web-Spa - Single HTTP/S Request Authorisation&lt;br /&gt;
 version 0.6 (web-spa@seleucus.net)&lt;br /&gt;
&lt;br /&gt;
 This is a holding prompt, type &amp;quot;exit&amp;quot; or &amp;quot;x&amp;quot; to quit&lt;br /&gt;
&lt;br /&gt;
 - type &amp;quot;service start&amp;quot; to start the web-spa server&lt;br /&gt;
 - type &amp;quot;help&amp;quot; or &amp;quot;?&amp;quot; for more options&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last line above is the server's holding prompt; all commands are issued via this prompt. In order to exit this prompt, type 'exit' or 'quit'. In the next step we will add 3 users and assign a unique pass-phrase to each one of them. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Yiannis Pavlosoglou&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: yiannis@xxxxxx.com&lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that only a user's full name and pass-phrase are required to be entered. Let's create another user:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Oliver Merki&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that we did not specify a user's e-mail address nor a phone number, as both these fields were optional. Finally, adding a third user: &lt;br /&gt;
&lt;br /&gt;
  web-spa-server&amp;gt;user add&lt;br /&gt;
 =[Required] Enter the New User's Full Name: Patryk&lt;br /&gt;
 =[Required] Enter the New User's Pass-Phrase: &lt;br /&gt;
 =[Required] Re-enter the above value: &lt;br /&gt;
 -[Optional] Please enter the New User's Email Address: &lt;br /&gt;
 -[Optional] Please enter the New User's Phone Number: &lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Patryk we only specified his first name and a unique pass-phrase. You get the picture. Now that we have created our users, let's add some actions to each user. We would like to give Patryk the ability to bounce the SSH service; ergo, let's add two actions:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh start &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 1&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh start' to action number 1 for user Patryk. Let's also add the stop command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;action add&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 The existing actions for this user are: &lt;br /&gt;
 Actions for user with ID: 13&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 #  O/S Command                     Last Executed            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 1  sudo service ssh start          has never been executed&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 =[Required] Enter the new O/S Command: sudo service ssh stop &lt;br /&gt;
 =[Required] Select an action number for this O/S Command [0,9]: 0&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above adds the O/S command 'sudo service ssh stop' to action number 0 for user Patryk. Two very important steps we must not forget is to enable the user Patryk and start the web-spa listening service. &lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;user activate&lt;br /&gt;
 Users:&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 ID  Active  Full Name               Last Modified            &lt;br /&gt;
 -----------------------------------------------------------&lt;br /&gt;
 11  false   Yiannis Pavlosoglou     2014-02-23 12:09:26.240&lt;br /&gt;
 12  false   Oliver Merki            2014-02-23 12:12:13.313&lt;br /&gt;
 13  false   Patryk                  2014-02-23 12:14:57.895&lt;br /&gt;
 ___________________________________________________________&lt;br /&gt;
 -[Optional] Select a User ID: 13&lt;br /&gt;
 User with ID: 13 is in-active&lt;br /&gt;
 -[Optional] Toggle user activation [Y/n]: &lt;br /&gt;
 User with ID: 13 is active&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 And finally issue the service start command:&lt;br /&gt;
&lt;br /&gt;
 web-spa-server&amp;gt;service start&lt;br /&gt;
 [2014-02-23 12-36-07] Attempting to start web-spa...&lt;br /&gt;
 [2014-02-23 12-36-07] Found access log file: /...cus.net/logs/access.log&lt;br /&gt;
 [2014-02-23 12-36-07] Creating tail listener...&lt;br /&gt;
 [2014-02-23 12-36-07] Web-spa server started!&lt;br /&gt;
 [2014-02-23 12-36-07] Please make sure your web server is also up&lt;br /&gt;
 web-spa-server&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= News =&lt;br /&gt;
&lt;br /&gt;
* [24 Apr 2014] Version 0.7 has been release and can now be found in the download section. Also, we welcome Paweł and Joël to the team.&lt;br /&gt;
* [20 Mar 2014] [http://www.eventbrite.co.uk/e/owasp-london-chapter-meeting-march-2014-tickets-10063386861 WebSpa has been presented during OWASP London Chapter Meeting]&lt;br /&gt;
* [16 Mar 2014] WebSpa has a new contributor – Paweł Goleń. Paweł welcome in the team!&lt;br /&gt;
* [14 Mar 2014] [https://code.google.com/p/web-spa/ Scheduled the deletion of the Google code project, given that downloads require a new account]&lt;br /&gt;
* [04 Mar 2014] [https://soundcloud.com/#owasp-podcast/the-owasp-webspa-project-with The WebSpa podcast has now been available!] &lt;br /&gt;
* [22 Feb 2014] Created the WebSpa project on sourceforge, started the import from google code&lt;br /&gt;
* [22 Dec 2013] Version 0.6 has been released and can now be found in the download section&lt;br /&gt;
* [08 Nov 2013] The OWASP Web Knocking Project is created&lt;br /&gt;
&lt;br /&gt;
=FAQs=&lt;br /&gt;
&lt;br /&gt;
; Can one deploy WebSpa over HTTP? &lt;br /&gt;
: Yes, WebSpa can be deployed over HTTP, however for security reasons it is highly recommended to utilize HTTPS.&lt;br /&gt;
&lt;br /&gt;
; How to report a WebSpa bug?&lt;br /&gt;
:To report a WebSpa bug please feel free to create a ticket on the [http://sourceforge.net/p/webspa/tickets/?source=navbar sourceforge.net]. A sourceforge account is necessary. If you don’t own a sourceforge account you may send an e-mail to one of the contributors.&lt;br /&gt;
&lt;br /&gt;
= People =&lt;br /&gt;
&lt;br /&gt;
The OWASP WebSpa Project is developed by a worldwide team of volunteers. Below is a list of all people that have contributed to the project so far.&lt;br /&gt;
&lt;br /&gt;
Active contributors:&lt;br /&gt;
* Yiannis Pavlosoglou - Inception &amp;amp; Development &lt;br /&gt;
* Patryk Arciszewski - Theoretician &amp;amp; Documentation&lt;br /&gt;
* Paweł Goleń - Breaking &amp;amp; Infrastructure &lt;br /&gt;
* Joël Rouiller - Development &amp;amp; Optimisation&lt;br /&gt;
* Oliver Merki - Leader &amp;amp; Operations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retired contributors:&lt;br /&gt;
* [[User:Dr. Markus Maria Miedaner|Markus Maria Miedaner]]&lt;br /&gt;
&lt;br /&gt;
= Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Release 0.9 (Q2-Q3/2014) == &lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.9 will examine attacks on the web knocking tool and propose controls in order to address the issues in question. &lt;br /&gt;
&lt;br /&gt;
== Release 0.8 (Q2/2014) ==&lt;br /&gt;
&lt;br /&gt;
WebSpa_v0.8 will incorporate in the server side component (run with -server option) the ability for a WebSpa administrator to generate a single output of all actions available for a Web Knocking user.&lt;br /&gt;
&lt;br /&gt;
== [http://sourceforge.net/projects/webspa/files/webspa-07.zip/download Release 0.7 (24/Apr/2014)] ==&lt;br /&gt;
&lt;br /&gt;
This is the current release of WebSpa. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.7 offers enhanced user administration functionality. The WebSpa client now offers the possibility for a user to connect to a web server with an untrusted/self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
 - NEW: The WebSpa client asks the user if he wants to connect web servers with unknown/untrusted/self-signed certificates. (Ticket #28) &lt;br /&gt;
 - NEW: Introduced ‘passwd’ command, which allows the WebSpa administrator to modify a user’s password.&lt;br /&gt;
 - NEW: Introduced ‘pass-phrase show’ command, which allows the WebSpa administrator to print a user’s pass-phrase to the screen.&lt;br /&gt;
 - FIXED: Array is no longer sorted, which reduced the entropy of the web-knock. (Ticket #24)&lt;br /&gt;
 - FIXED: Reworked and added test cases.&lt;br /&gt;
 - FIXED: Removed dependency on Spring security. (Ticket #18)&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-06.zip Release 0.6 (21/Dec/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.6 offers enhanced logging functionality, fixing a bug that caused the server to become unresponsive upon starting and stopping. The client now offers to transmit a web knock request, thus not requiring for a user to copy-paste the URL into their browser. &lt;br /&gt;
&lt;br /&gt;
Additional test cases have been added, the option &amp;quot;?&amp;quot; is now available to offer &amp;quot;help&amp;quot; and the log functionality tracks via means of a timestamp all events logged&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-05.zip Release 0.5 (21/Oct/2013)] ==&lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.5 shortens the number of inputs required from a legitimate user of web-spa to only two: A valid pass-phrase, unique for each user and a single digit in the range of [0-9]. We refer to the latter as an action number and it represents a premeditated Operating System (O/S) command.&lt;br /&gt;
&lt;br /&gt;
All the functionality (for both the client and the server) is now within a single jar file, accompanied by detailed documentation:&lt;br /&gt;
&lt;br /&gt;
 - 00-web-spa-administration-guide.pdf	&lt;br /&gt;
 - 00-web-spa-specification-guide.pdf	&lt;br /&gt;
 - 00-web-spa-user-guide.pdf&lt;br /&gt;
&lt;br /&gt;
The server side functionality has been re-designed to operate with a single configuration file (created at first run) as well as a HyperSQL embedded file database (also created at first run).&lt;br /&gt;
&lt;br /&gt;
Finally, no files are created or are required when web-spa runs in client mode, with the '-client' option.&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-04.zip Release 0.4 (27/Aug/2011)] == &lt;br /&gt;
&lt;br /&gt;
A number of updates and bug fixes have been included within this version. Also, an update on the actual message format to further protect from replay attacks has been included. &lt;br /&gt;
&lt;br /&gt;
WebSpa _v0.4 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-04.jar&lt;br /&gt;
 * webspa-elements-04.jar&lt;br /&gt;
 * webspa-server-04.jar&lt;br /&gt;
&lt;br /&gt;
== [https://code.google.com/p/web-spa/downloads/detail?name=webspa-03.zip Release 0.3 (11/Jul/2011)] ==&lt;br /&gt;
&lt;br /&gt;
In its first usable release, WebSpa _v0.3 contains the necessary client and server components, as well as an elements API library. Thus, the files within the download are:&lt;br /&gt;
 * webspa-client-03.jar&lt;br /&gt;
 * webspa-elements-03.jar&lt;br /&gt;
 * webspa-server-03.jar&lt;br /&gt;
&lt;br /&gt;
== Contribution ==&lt;br /&gt;
&lt;br /&gt;
Involvement in the development and promotion of the OWASP WebSpa Project is actively encouraged!&lt;br /&gt;
You do not have to be a security expert in order to contribute.&lt;br /&gt;
Some of the ways you can help:&lt;br /&gt;
* Quality assurance of resolved defects&lt;br /&gt;
* Java development (good knowledge of Java desirable)&lt;br /&gt;
&lt;br /&gt;
=Project About=&lt;br /&gt;
{{:Projects/OWASP_WebSpa_Project}}  &lt;br /&gt;
&lt;br /&gt;
__NOTOC__ &amp;lt;headertabs /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Project]]  [[Category:OWASP_Builders]] [[Category:OWASP_Defenders]]  [[Category:OWASP_Document]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Projects/OWASP_WebSpa_Project/Releases/Current&amp;diff=173425</id>
		<title>Projects/OWASP WebSpa Project/Releases/Current</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Projects/OWASP_WebSpa_Project/Releases/Current&amp;diff=173425"/>
				<updated>2014-04-24T20:03:12Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Updated current version to 0.7&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://sourceforge.net/projects/webspa/files/webspa-07.zip/download WebSpa v0.7]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=London&amp;diff=172019</id>
		<title>London</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=London&amp;diff=172019"/>
				<updated>2014-04-08T20:35:09Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: Added WebSpa presentation to the chapter meeting of 20-Mar-2014&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Chapter Template|chaptername=London|extra=The chapter leader is Justin Clarke (justin.clarke [at] owasp.org) since January 2009, with Tobias Gondrom (tobias.gondrom [at] owasp.org), and Dennis Groves (dennis.groves [at] owasp.org) constituting the London Chapter Board. Follow chapter news on Twitter at http://twitter.com/owasplondon|mailinglistsite=http://lists.owasp.org/mailman/listinfo/owasp-london|emailarchives=http://lists.owasp.org/pipermail/owasp-london}}&lt;br /&gt;
==Chapter Sponsors==&lt;br /&gt;
The following are the list of OWASP Corporate Members who have generously aligned themselves with the London chapter, therefore contributing funds to our chapter:&amp;lt;br /&amp;gt;&lt;br /&gt;
{{MemberLinks|link=http://www.gdssecurity.com|logo=GDS_LOGO_SMALL.jpg}}&lt;br /&gt;
{{MemberLinks|link=http://www.quotium.com|logo=LogoQuotium.png}}&lt;br /&gt;
{{MemberLinks|link=http://www.mavitunasecurity.com/netsparker|logo=NetSparker_Logo_ResizedLondon.png‎}}&lt;br /&gt;
&lt;br /&gt;
==Meeting Sponsors==&lt;br /&gt;
The following is the list of organisations who have generously provided us with space for London chapter meetings:&amp;lt;br /&amp;gt;&lt;br /&gt;
{{MemberLinks|link=http://www.hotels.com|logo=Hicon_hotels-128-TM-R.PNG‎}}&lt;br /&gt;
{{MemberLinks|link=http://www.skype.com|logo=Skype logo solid.jpg‎}}&lt;br /&gt;
&lt;br /&gt;
==Next Meeting/Event(s)==&lt;br /&gt;
&lt;br /&gt;
===Thursday, March 20th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
====Talks====&lt;br /&gt;
*'''Using Tunna (HTTP Tunnel) for penetration testing - Nikos Vassakis and Rodrigo Marcos'''&lt;br /&gt;
*: Once a web application is compromised and command execution is achieved, the attacker faces a number of hurdles. Network filtering is one of the key defensive techniques used to prevent attackers from creating further communication channels. This is usually an effective technique to limit the attacking avenues. Tunna is a tool designed to bypass firewall restrictions on remote web servers. It consists of a local application (supporting Ruby and Python) and a web application (supporting ASP.NET, Java and PHP). This presentation will cover all the steps required to effectively bypass firewalls protecting web applications, bind TCP ports on the compromised host and access other hosts in the DMZ.&lt;br /&gt;
&lt;br /&gt;
*'''OWASP WebSpa - Yiannis Pavlosoglou''' ([[Media:OWASP_WebSpa_-_The_Concept_of_Web_Knocking_and_a_Tool_to_Go_With_it.pptx|PPTX]])&lt;br /&gt;
*: The OWASP WebSpa project is a tool implementing the novel idea of web knocking. The term web knocking stems from port knocking, If port knocking is defined as &amp;quot;a form of host-to-host communication in which information flows across closed ports&amp;quot; then we define web knocking a form of host-to-host communication in which information flows across erroneous URLs. In this talk we introduce web knocking and WebSpa: A tool for single HTTP/S authorisation requests. Similarly to traditional network port-knocking schemes, WebSpa aims to create a covert channel of communication for Operating System (O/S) commands, over the web application layer. Within this presentation the applicability, as well as the hurdles crossed while developing WebSpa will be discussed. The presentation will conclude with a video demo illustrating how a specially crafted URL will be responsible for allowing access to a previous closed TCP port 22 and other services.&lt;br /&gt;
&lt;br /&gt;
====Speakers====&lt;br /&gt;
&lt;br /&gt;
*'''Nikos Vassakis'''&lt;br /&gt;
*:Nikos is a security consultant at SECFORCE. He holds a BSc in Computer Science and an MSc in Information Security, and has 2 years of security related working experience. When not working breaking one technology or another, he drinks beer, socialises and when time permits works on research projects. Current research activities focus mainly on post-exploitation network traffic tunnelling techniques and trying to take over the world.&lt;br /&gt;
&lt;br /&gt;
*'''Rodrigo Marcos'''&lt;br /&gt;
*:Rodrigo is a security CREST consultant at SECFORCE, with 10 years of experience in the penetration testing industry. His interests cover a wide range of areas, such as network protocol fuzzing, programming and &amp;quot;high-protein&amp;quot; web hacking - trying to minimise the gap between web application and infrastructure testing to achieve his ultimate goal: World domination, one IP address at a time.&lt;br /&gt;
&lt;br /&gt;
*'''Yiannis Pavlosoglou'''&lt;br /&gt;
*:There is a world of numbers, hiding behind letters, inside computers, this is what stimulates my work. I am currently employed in IT risk management within the financial industry, running a team of technical risk assessors. Prior to this, I spent 5 years in the world of professional penetration testing. I focused my career evolution on assisting large scale projects actually implement secure development practices. This included teaching developers how to write secure code. For OWASP, I was the project leader for JBroFuzz and used to chair the Global Industry Committee. I am on the Application Security Advisory Board of the (ISC)2. My academic qualifications include a PhD in information security, designing routing protocols for ad-hoc networks. I am a certified scrum master and hold the CISSP certification.&lt;br /&gt;
&lt;br /&gt;
====RSVP====&lt;br /&gt;
&lt;br /&gt;
RSVP is now open at Eventbrite - http://owasp-london.eventbrite.co.uk/&lt;br /&gt;
&lt;br /&gt;
== Future Events ==&lt;br /&gt;
&lt;br /&gt;
We have the following dates booked in with Skype, who have generously committed to hosting our regular chapter meetings for 2014:&lt;br /&gt;
&lt;br /&gt;
===Thursday, May 15th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
===Thursday, July 17th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
===Thursday, September 18th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
===Thursday, November 20th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
===Thursday, January 16th 2014 (Central London)===&lt;br /&gt;
'''Location''': Skype, 2 Waterhouse Square, 140 Holborn, London, EC1N 2ST&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Justin Clarke, Marco Morana and Tobias Gondrom&lt;br /&gt;
&lt;br /&gt;
*'''Pushing CSP to Prod: Case Study of a Real-World Content-Security Policy Implementation - Justin Clarke'''&lt;br /&gt;
*:Widespread adoption of Content Security Policy (CSP) by most modern browsers has led many organisations to consider implementing CSP to thwart Cross-Site Scripting attacks in their web applications.  In this session we will walk you through our experience successfully implementing CSP on our customer-facing web application, SendSafely.com, which relies heavily on JavaScript and HTML5. Our story will arm you with the knowledge you’ll want should you decide to go down the same path.  When we initially decided to implement CSP, the BETA version of our website was already live.  Like many sites, our platform grew from something we initially started as a pet project.  Admittedly, building CSP into our site from day one would have been much easier...but not nearly as challenging or fun.   We’ll start by walking you through our Content Security Policy, discuss the basic nuances between how each major browser implements CSP, and outline techniques for how we deal these nuances at runtime.  Next, we’ll discuss the basic techniques we used for converting all of our classic “in-line” JavaScript to comply with the strict CSP that we developed.  We’ll also talk about the not-so-easy task of getting third-party JavaScript to play nicely with CSP (cough, ReCaptcha, cough) and cover some edge cases we ran into related to the newer HTML5 APIs we rely on for certain tasks. Lastly, we’ll discuss what we learned from implementing a notification mechanism to report violations of our CSP at runtime.  Needless to say we were surprised by what was reported, and we’ll share the results.   Our hope is that by telling our story to the world, we’ll either save the rainforest or make your life a little easier should you decide to implement CSP (worst case scenario we’ll save you the trouble and dissuade you from even trying).&lt;br /&gt;
&lt;br /&gt;
*'''2013 AppSec Guide and CISO Survey: Making OWASP Visible to CISOs - Marco Morana and Tobias Gondrom'''&lt;br /&gt;
*: Recognising the important role that the CISO has in managing application security processes within the organisations, OWASP sponsored a project in 2012 to develop guidance specifically for CISOs. The aim of the OWASP guide is to provide useful guidance to CISOs for effectively managing the risks of insecure web applications and software by planning the application security activities, investing in countermeasures to mitigate threats and considering the costs and the benefits for the organisation. Recognising that a CISO guide has first and for most capture the needs of CISO in managing application security from information security governance, risk and compliance perspectives a survey was developed in parallel with the draft of the CISO Guide. As the results of the 2013 CISO survey have become available, they have been used to tailor the guide to the specific CISOs needs. One of the most important aspects covered in the CISO guide are to making the business case for application security investments by helping CISOs in translating technical risks such as the OWASP top ten into business impacts, compliance with standards and regulations and risk management. Specifically the version of the guide that is presented at OWASP AppSec USA will be the first version that highlights the results of the CISO survey and seek to introduce CISOs to projects/resources that can help them in rolling out an application security program whose main goal is managing web application security risks.&lt;br /&gt;
&lt;br /&gt;
===Thursday, December 12th 2013 (Central London)===&lt;br /&gt;
'''Location''': Morgan Stanley, 25 Cabot Square, Canary Wharf, London E14 4QA&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Ofer Maor and Colin Watson&lt;br /&gt;
&lt;br /&gt;
*'''IAST: Runtime Code &amp;amp; Data Security Analysis – Beyond SAST/DAST - Ofer Maor'''&lt;br /&gt;
*:Until recently, SAST/DAST dominated the application security testing market, each with its own pros and cons. We present IAST, a new approach, analysing code execution, memory and data in runtime, allowing for accurate inspection of the application. The presentation will present the basic IAST technology building blocks and their benefits, followed by discussing advanced IAST data analysis capabilities, which allow for a deeper analysis of the application and its business logic. We will discusses different approaches and implementations of IAST and Runtime code analysis, discussing the benefits of each. The presentation will include practical samples (including code!) of how IAST can be used to accurately detect both simple and complicated vulnerabilities, including SQL Injection, Parameter Tampering, Persistent XSS, CSRF, and more...&lt;br /&gt;
&lt;br /&gt;
*'''OWASP Cornucopia - Colin Watson'''&lt;br /&gt;
*:Microsoft's Escalation of Privilege (EoP) threat modelling card game has been refreshed into a new version more suitable for common web applications, and aligned with OWASP advice and guides. &amp;quot;OWASP Cornucopia - Ecommerce Web Application Edition&amp;quot; will be presented and used to demonstrate how it can help software architects and developers identify security requirements from the OWASP Secure Coding Practices - Quick Reference Guide. He will also provide a brief introduction about how to contribute ideas and content to OWASP projects, and how to start a project.&lt;br /&gt;
&lt;br /&gt;
===Thursday, October 24th 2013 (Central London)===&lt;br /&gt;
'''Location''': Expedia Inc (Hotels.com), Angel Building, 407 St John Street, London, EC1V 4EX&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Dinis Cruz and Justin Clarke&lt;br /&gt;
&lt;br /&gt;
*'''Using the O2 Platform, Zap and AppSensor to protect and test applications - Dinis Cruz'''&lt;br /&gt;
*:This presentation will show how these 3 OWASP tools can be used to find and mitigate security vulnerabilities in applications. The O2 Platform will be used to analyse the target application source code, and automate the use of both Zap and AppSensor's capabilities.&lt;br /&gt;
&lt;br /&gt;
*'''OWASP Mobile Top 10 - Justin Clarke'''&lt;br /&gt;
*:The OWASP Mobile Security Project is a centralised resource intended to give developers and security teams the resources they need to build and maintain secure mobile applications. Through the project, our goal is to classify mobile security risks and provide developmental controls to reduce their impact or likelihood of exploitation. Justin will be going through the current version of the Mobile Top 10, as well as discussing what is currently happening with the project.&lt;br /&gt;
&lt;br /&gt;
===Monday, June 3rd 2013 (London EUTour2013 One Day Conference)===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Lion Court Conference Centre, 25 Procter Street, Holborn, London, WC1V 6NY&lt;br /&gt;
&lt;br /&gt;
For full details, including slides and videos of sessions, go to the main [https://www.owasp.org/index.php/EUTour2013 EUTour2013 Page] and click through to the London event.&lt;br /&gt;
&lt;br /&gt;
===Thursday, November 8th 2012 (Central London)===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Morgan Stanley, 25 Cabot Square, Canary Wharf, London E14 4QA&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Petko Petkov and Marco Morana&lt;br /&gt;
&lt;br /&gt;
*'''A Short History of The JavaScript Security Arsenal - Petko D. Petkov''' &lt;br /&gt;
*:In 2006 we had the first JavaScript port scanner. The same year we saw the incarnation of more advanced tools such as AttackAPI, Carnaval and Backframe. A year later we saw several decent attempts to create complete security tools designed to run with nothing else but web technologies. That was just the start.&lt;br /&gt;
*:This presentation aims to show the progress that has been made in the past six years in terms of security tools developed entirely with the help of browser technologies. The presentation will take you on a journey through the years, exploring some of the interesting attack techniques used in the past, bringing back some of the important discussions and eventually reaching the culmination when modern tools and technologies will be shown and explained.&lt;br /&gt;
&lt;br /&gt;
*'''The continuously evolving threat landscape call CISOs to consider new application security measures, how OWASP can help? - Marco Morana''' ([[Media:OWASP-London-CISO-Guidevs1.pptx|PPTX]])&lt;br /&gt;
*:The aim of this 20 minute talk is how to introduce Chief Information Security Officers (CISO) to the OWASP Application Security Guide. OWASP has developed a guidance to specifically to address the needs of CISOs to help them in prioritizing the risk mitigation of web application vulnerabilities might severely and negatively impact the organization and jeopardizing the business.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, May 10th 2012  (Application Security One-Day Conference - Free for OWASP Members) ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Bletchley Park, Sherwood Drive, Milton Keynes, MK3 6EB&lt;br /&gt;
&lt;br /&gt;
'''Time''': 10:00am - 4:30pm&lt;br /&gt;
&lt;br /&gt;
ISSA-UK and OWASP are partnering for the first time to bring you a joint application security training conference, free for members of OWASP, ISSA-UK, or CSF.  This unique event will attract attendees from both ISSA-UK's traditional information security membership base, and OWASP's web application specialists, bringing new thoughts and perspectives to both groups.  The theme of the day is, no surprise, application security.  We expect to focus on both methodologies and frameworks - such as OWASP's top 10 - and a variety of custom tools and frameworks, from open-source to proprietary.  The goal is to deliver much needed tips and tricks to attendees, something to tackle our ever increasing workloads.  Join us for a full day of application security tricks, tools and methods at the historic Bletchley Park.  After the day's talks are over, please join us for a free tour of the famous WWII codebreaking facility!&lt;br /&gt;
 &lt;br /&gt;
=== Thursday, March 29th 2012 (Central London) ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Morgan Stanley, 25 Cabot Square, Canary Wharf, London E14 4QA&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Jim Manico and Manish Saindane&lt;br /&gt;
&lt;br /&gt;
*'''Top 10 Web Defences - Jim Manico''' ([[Media:Developer Top Ten Core Controls v4.2.pptx|PPTX]])&lt;br /&gt;
*:We cannot hack or firewall our way secure. Application programmers need to learn to code in a secure fashion if we have any chance of providing organisations with proper defences in the current threatscape. This talk will discuss the 10 most important security-centric computer programming techniques necessary to build low-risk web based applications.&lt;br /&gt;
*'''IronWASP - Manish Saindane''' ([[Media:IronWASP.pptx|PPTX]])&lt;br /&gt;
*:IronWASP (Iron Web application Advanced Security testing Platform) is an open source system for web application vulnerability testing. It is designed to be customizable to the extent where users can create their own custom security scanners using it. Though an advanced user with Python/Ruby scripting expertise would be able to make full use of the platform, a lot of the tool's features are simple enough to be used by absolute beginners.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, March 8th 2012, 18:30-21:00 (Royal Holloway) ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Royal Holloway University of London, Bourne Lecture Theatre 2, Egham Hill, Egham, TW20 0EX&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Viet Pham and Tobias Gondrom&lt;br /&gt;
&lt;br /&gt;
*''Implementing cryptography: good theory vs. bad practice - Viet Pham ([[https://www.owasp.org/images/c/c5/OwaspTalkMarch.pdf PDF]])&lt;br /&gt;
:Abstract: Cryptography is being widely implemented in software to provide security features. The main reason is that, many cryptographic mechanisms are mathematically proven secure, or trusted secure given some mathematical reasoning. However, to take full advantages of these mechanisms, they must be implemented strictly according to the theoretical models, e.g., several cryptographic mechanisms must be used together, in a specific manner to provide a desired security goal. However, without strong cryptographic background, many software developers tend to deviate from these models, thus making their own security software a gold mine for attackers. This talk gives examples to show why such situations exist, where do they spread, and how bad they may turn into.&lt;br /&gt;
&lt;br /&gt;
*''Securing the SSL channel against man-in-the-middle attacks: Future technologies - HTTP Strict Transport Security and and Pinning of Certs - Tobias Gondrom ([[http://www.gondrom.org/owasp/presentations/OWASP_defending-MITMA_RHUL.pdf PDF]])&lt;br /&gt;
:&amp;quot;In the recent months major trusted CAs providing trusted certificates for SSL/TLS in browser scenarios were compromised (e.g. seen in the Diginotar breach) and based on the current trust models (trusting all registered CAs equally for all domains) exposed vital web applications to the risk of man-in-the-middle attacks. Several approaches are currently discussed to mitigate this risk. The most advanced and closest to final adoption being the technologies discussed by the browser vendors at the recent IETF meeting in November in Taipei: HSTS and pinning of certificates. To better protect content providers against the distribution of bogus certificates, an HTTP header extension containing a fingerprint of their certificates linked to a domain address has been defined. This approach, which has been partly tested in Chrome, and already helped identify and protect to some extend Google's web application in the recent Diginotar compromise. Chrome users were able to detect the bogus DigiNotar certificates because Chrome had embedded the hashes of valid Google certificates. Back in July, the hacked DigiNotar certificate authority (CA), which has since gone out of business, was used to issue more than five hundred bogus certificates for companies including Google and various intelligence services.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Thursday, February 2nd 2012 ,18:30-21:00 ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Royal Holloway University of London, Bourne Lecture Theatre 2, Egham Hill, Egham, TW20 0EX&lt;br /&gt;
&lt;br /&gt;
'''Speakers''': Sarah Baso, Dinis Cruz, Dennis Groves&lt;br /&gt;
&lt;br /&gt;
*''Security as Pollution (lessons learned)'' - Dinis Cruz&lt;br /&gt;
*:Based on David Rice's &amp;quot;Upon the Threshold of Opportunity&amp;quot; presentation at the OWASP AppSec USA 2010&lt;br /&gt;
&lt;br /&gt;
*''Making Security Invisible by Becoming the Developer's Best Friends'' - Dinis Cruz&lt;br /&gt;
*:Based on Dinis' presentation at OWASP AppSec Brazil 2011&lt;br /&gt;
&lt;br /&gt;
*''How to get a job in AppSec by Hacking and fixing TeamMentor'' - Dinis Cruz and Dennis Groves&lt;br /&gt;
*:This is for students and developers who want to get into the application security space and need to have/show real-world experience.&lt;br /&gt;
&lt;br /&gt;
*''What's Happening on OWASP Today'' - Sarah Baso&lt;br /&gt;
*:This is an overview of the multiple activities that are currently happening around the world at OWASP presented by one of OWASP's employees currently focused on logistics, community and empowerment&lt;br /&gt;
&lt;br /&gt;
=== Thursday, September 8th 2011 ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Royal Holloway University of London, Bourne Lecture Theatre 2, Egham Hill, Egham, TW20 0EX&lt;br /&gt;
&lt;br /&gt;
'''Speaker''': Daniel Cuthbert ([http://prezi.com/ylfkkek0vb-r/all-aboard-the-lulz-boat/ deck])&lt;br /&gt;
&lt;br /&gt;
'''Title''': Doing it for the Lulz: Why Lulzsec has shown us to be an&lt;br /&gt;
ineffective industry.&lt;br /&gt;
&lt;br /&gt;
=== Friday, June 3rd 2011 ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Royal Holloway University of London, Room BLT2, Egham Hill, Egham, TW20 0EX&lt;br /&gt;
&lt;br /&gt;
*'''Wordpress Security - Steve Lord''' ([[Media:Wordpress-security-ext.pdf|PDF]])&lt;br /&gt;
*:Wordpress is one if the most popular blogging systems in the world but is routinely used to shoehorn complex sites into a blog shaped box, often because of it's flexibility and ease of use. In this talk, Mandalorian's Steve Lord discusses common Wordpress security snafus and how to avoid them.&lt;br /&gt;
&lt;br /&gt;
=== Thursday, April 14th 2011 ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': Charterhouse Bar, 38 Charterhouse Street, Smithfield, London EC1M 6JH&lt;br /&gt;
&lt;br /&gt;
*'''Wordpress Security - Steve Lord''' ([[Media:Wordpress-security-ext.pdf|PDF]])&lt;br /&gt;
*:Wordpress is one if the most popular blogging systems in the world but is routinely used to shoehorn complex sites into a blog shaped box, often because of it's flexibility and ease of use. In this talk, Mandalorian's Steve Lord discusses common Wordpress security snafus and how to avoid them.&lt;br /&gt;
&lt;br /&gt;
*'''Outcomes from the recent OWASP Summit in Portugal - London based attendees of the Summit'''&lt;br /&gt;
*:Discussion of what came out of the recent OWASP Summit, &amp;quot;OWASP 4.0&amp;quot; and what is changing in the OWASP world now and in the near future&lt;br /&gt;
&lt;br /&gt;
=== Thursday, February 17th 2011 ===&lt;br /&gt;
&lt;br /&gt;
'''Location''': ThoughtWorks, Berkshire House, 168-173 High Holborn, City of London WC1V 7AA&lt;br /&gt;
&lt;br /&gt;
A special meeting event, in conjunction with [http://londongeeknights.wetpaint.com London Geek Nights] on SSL usage and dangers. An opportunity to get some of the developer and security communities together to talk more pragmatically on this very key topic.&lt;br /&gt;
&lt;br /&gt;
== Archived Events ==&lt;br /&gt;
&lt;br /&gt;
For events before 2011, see [[Archived OWASP London Events]]&lt;br /&gt;
&lt;br /&gt;
== Other Activities ==&lt;br /&gt;
&lt;br /&gt;
*'''February 2010 - Personal Information Online COP'''&lt;br /&gt;
The [[Leeds UK]], London and [[Scotland]] Chapters [http://www.owasp.org/index.php/Industry:Personal_Information_Online_Code_of_Practice joint response] to the UK Information Commissioner's Office draft Personal Information Online Code of Practice.&lt;br /&gt;
&lt;br /&gt;
*'''March 2009 - Entry for Nominet Best Practice Challenge 2009'''&lt;br /&gt;
Open Web Application Security Project was nominated by OWASP London for the Best Security Initiative Award ([[Image:Nominet_best_practice_challenge_2009_owasp_entry.pdf]]) in the [http://www.nominet.org.uk/about/bestpracticechallenge/ Nominet Best Practice Challenge 2009].  Short-listed June 2009. Announcement due 2 July 2009.&lt;br /&gt;
&lt;br /&gt;
*'''16th October 2008 - COI Browser Standards for Public Websites'''&lt;br /&gt;
&lt;br /&gt;
The London and [[Scotland]] Chapters joint response to the Central Office of Information draft document on [http://www.coi.gov.uk/guidance.php?page=200 browser standards for public websites] (version 0.13) ([[Image:OWASP-COI-Browser-Standards.pdf]]).&lt;br /&gt;
&lt;br /&gt;
[[Category:United Kingdom]]&lt;br /&gt;
[[Category:Europe]]&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=File:OWASP_WebSpa_-_The_Concept_of_Web_Knocking_and_a_Tool_to_Go_With_it.pptx&amp;diff=172018</id>
		<title>File:OWASP WebSpa - The Concept of Web Knocking and a Tool to Go With it.pptx</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=File:OWASP_WebSpa_-_The_Concept_of_Web_Knocking_and_a_Tool_to_Go_With_it.pptx&amp;diff=172018"/>
				<updated>2014-04-08T20:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Oliver M.: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Oliver M.</name></author>	</entry>

	</feed>