IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SeguretatXarxesInformàtiques
Fitxers: No hi ha fitxers
Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SeguretatXarxesInform%C3%A0tiques
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas

Instal·lació

Previàment instal·leu Java per a Ubuntu 12.04. Consulteu Java

$ sudo apt-get install tomcat6

O podeu instal·lar ja la versió 7:

 $ sudo apt-get install tomcat7

Comproveu que funciona accedint a:

http://localhost:8080/

Ara executeu:

$ sudo apt-get install tomcat6-admin

o

$ sudo apt-get install tomcat7-admin

Afegiu un usuari i paraula de pas al fitxer:

$ sudo joe /etc/tomcat7/tomcat-users.xml

Deixeu ja preparat el fitxer per a webgoat:

<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove  
  <!.. ..> that surrounds them.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/> 
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->
   
 <role rolename="manager-gui"/>
 <role rolename="manager-script"/>
 <role rolename="manager-jmx"/>   
 <role rolename="manager-status"/>
 
 <role rolename="webgoat_admin"/>
 <role rolename="webgoat_user"/> 
  
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
  
  <user username="webgoat" password="webgoat" roles="webgoat_admin"/> 
  <user username="guest" password="guest" roles="webgoat_user"/> 
                        
</tomcat-users>   

I executeu:

$ sudo /etc/init.d/tomcat7 restart

Accediu a la web:

http://localhost:8080/manager/html

Webgoat el podeu descarregar a:

http://code.google.com/p/webgoat/downloads/list

Descarregueu el fitxer .war:

$ wget http://code.google.com/p/webgoat/downloads/detail?name=WebGoat-5.4.war&can=2&q=

a la web:

http://code.google.com/p/webgoat/downloads/list

podeu consultar si hi ha alguna versió més moderna a instal·lar.

I l'instal·leu des de la interfície web utilitzant la opció.

Select WAR file to upload:  

Cal tornar a iniciar Tomcat:

$ sudo /etc/init.d/tomcat6 restart

Per accedir a webgoat:

http://localhost:8080/WebGoat-5.4/attack

S'instal·la a:

/var/lib/tomcat6/webapps/WebGoat-5.4

Segons el README

Primer cal instal·lar Java

$ sudo apt-get install sun-java6-jdk
NOTA: Webgoat 5.2 necessita una versió 1.6 de Java. Però, l'script d'instal·lació de webgoat està malament. Webgoat ha 
estat compilat amb la versió 1.6 de Java però l'script obliga a utilitzar una java 1.5. Editeu el fitxer webgoat.sh i canvieu els 
1.5 per 1.6.

Assegureu-vos que teniu establerta la variable d'entorn JAVA_HOME

$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16

Si teniu problemes afegiu les línies:

JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.10    
export JAVA_HOME

A l'script webgoat.sh

Després descarregar WebGoat:

$ cd
$ mkdir WebGoat
$ wget http://webgoat.googlecode.com/files/WebGoat-OWASP_Standard-5.2.zip
NOTA: La versió zip inclou un tomcat. Si ja teniu Tomcat instal·lat i en execució l'haureu d'aturar. Per exemple:
$ sudo /etc/init.d/tomcat6 stop

I els descomprimim:

$ unzip WebGoat-OWASP_Standard-5.2.zip

I ara executem l'script de shell:

$ cd WebGoat-5.2/
$ sudo chmod +x webgoat.sh 
$ sudo sh webgoat.sh start8080

Ara obriu la URL:

http://localhost:8080/WebGoat/attack

L'usuari i la paraula de pas són:

  • usuari:: guest
  • Paraula de pas: guest

WebGoat 5.2 Developer

$ wget http://fastbull.dl.sourceforge.net/sourceforge/owasp/WebGoat-OWASP_Developer-5.2.zip

http://code.google.com/p/webgoat/wiki/Installation http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project

Iniciar les lliçons

Aneu a la URL:

http://localhost:8080/WebGoat-5.4/attack

Pràctiques

Podeu consultar les pràctiques de SSI de la FIB. Les trobareu a la web del professor Joan Arnedo Moreno:

http://personals.ac.upc.edu/joanar/ 

Concretament les pràctiques de vulnerabilitats web són la 8 i la 9:

$ wget http://personals.ac.upc.es/joanar/SSI/Labo8.pdf
$ wget http://personals.ac.upc.es/joanar/SSI/Labo9.pdf


Aprofitar els camps ocults

Un cop instal·lat webgoat, podeu trobar aquesta pràctica a la secció Parameter tampering::

Exploit Hidden Fields

La pràctica consisteix a canviar el preu d'un producte. Utilitzant Webscarab, podeu modificar el preu del producte.

NOTA: Assegureu-vos que no teniu localhost a les excepcions del proxy, si voleu que webscarab les intercepti.

A l'apartat Proxy>Miscellaneous de webscarab, podeu activar la opció:

Reveal hidden files in HTML pages.

I aleshores el firefox us mostrarà els camps ocults dels formularis de les pàgines web per les que navegueu. A més des del propi navegador podreu modificar els valor del camp.

Canviar el correu on s'envien correus en una pàgina de contacte

La trobareu a la secció Parameter tampering:

Exploit Unchecked Email

Igual que l'anterior, aprofita camps ocults.

Aquesta vulnerabilitat es pot aprofitar per a fer SPAM.

Evitar validacions Javascript. Saltar-se codi javascript

La trobareu a la secció Parameter tampering:

How to bypass Client Side JavaScript Validation

En aquest cas ens interessa interceptar les respostes. A webscarab a la secció Proxy-> Manual edit marqueu la opció:

Intercept responses

A la resposta podem eliminar el codi de javascript que no ens interessa.

Per tant, no podem basar la nostra seguretat en Javascript.

Autenticar-se com un altre usuari manipulant session cookies

La trobareu a la secció Session Management Flaws:

Spoof an Authentication Cookie

Les cookies han de ser prou aleatòries

Cross Site Scripting. Insertar un script a la base de dades

A la secció Cross Site Scripting (XSS), escolliu:

LAB: Cross Site Scripting
><script>alert(“Sessió Robada ” + document.cookie)</script>
NOTA: Només funciona amb WebGoat 5.2 Developer

SQL Injection

String SQL Injection” de l'apartat “Injection Flaws”

Resolució de problemes

SEVERE: Error deploying web application archive WebGoat.war. java.lang.UnsupportedClassVersionError: Bad version number in .class file

L'script d'instal·lació de webgoat està malament. Webgoat ha estat compilat amb la versió 1.6 de Java però l'script obliga a utilitzar una java 1.5. Editeu el fitxer webgoat.sh i canvieu els 1.5 per 1.6.

Vegeu també

Enllaços externs