OWASP WebScarab NG Project Technical Info/es

Información técnica de WebScarab (Siguiente Generación)

Accediendo a la base de datos HSQL
WebScarab-NG esta diseñoado para usar las librerias de base de datos de HSQLDB. Si estpa interesado en involucrarse en la DB manualmente, aqui está lo que necesita saber.

Obteniendo el JAR
Dado que WebScarab-NG esta disponible solamente via Java WebStart en este momento, es improbable poner las librerias de HSQLDB en un lugar conveniente. Asi que baje el [| jar] y pongalo en algun lugar a la mano.

Accediendo a la BD
HSQLDB viene con un cliente gráfico que permite que explore la base de datos y ejecute SQL arbitrario.

La puede invocar corriendo:

$ java -cp hsqldb-1.8.0.1.jar org.hsqldb.util.DatabaseManager

Le va a pedir que se contecte a la BD dando la URL. Simplemente copie y pegue la misma URL que ve en la ventana de WebScarab-NG.

NOTE: Dado que corre "en el mismo proceso" que WebScarab-NG no es posible acceder la concurrentemente con otra aplicación. Puede tener éxito al correr HSQLDB en modo servidor y especificar la URL apropiada para WS-NG cuando inicia, pero recuerde que (en este momento) WS-NG ejecuta el "SHUTDOWN" de la DB de manera que tenga un archivo de BD limpio y no pueda rehacer el historial, etc. esto puede ser cambiado si es necesario.

Tablas Importantes
Una ves que tiene la BD abierta, es solo SQL ;-)

La tabla clave es la tabla "conversations".

conversations.createTable.hsqldb=\ CREATE CACHED TABLE conversations (\                session_id INT NOT NULL, \                 id INTEGER GENERATED BY DEFAULT AS IDENTITY\                         (START WITH 1) PRIMARY KEY,\                 source_id INT NOT NULL,\                 request_date TIMESTAMP NOT NULL,\                 request_method_id INT NOT NULL,\                 request_uri_id INT NOT NULL,\                 request_version_id INT NOT NULL,\                 request_content_id CHAR(32),\                 response_version_id INT NOT NULL,\                 response_status CHAR(3) NOT NULL,\                 response_message_id INT NOT NULL,\                 response_content_id CHAR(32)\         )

Esta mantiene el registro de cada conversación que WS-NG conoce. Las columnas deben ser bastante auto explicativas.

Esta tabla trabaja en conjunto con las tablas de headers y named_values para almacenar los encabezados de petición y respuesta, asi como la tabla de blobs para almacenar el contenido de la peticion y respuesta. La tabla de blobs tiene un índice que es la suma MD5 del contenido.

Así que es bastante fácil reconstruir una conversacion entontrando el valor en la tabla de conversaciones, obtener los encabezados de las tablas de headers/named_values y el contenido de la tabla de blobs. Y obviamente, los otros campos estan organizados en las tablas apropiadas (method_id -> methods, uri_id -> uris, etc)

Los comentarios sobre mi normalización son bienvenidos - ha sido casi 15 años desde mi clase de base de datos en la universidad!

Cambios en el esquema de la Base de datos
Las bases de datos creadas por versiones de WebScarab-NG antes de 20070118 van a ser incompatibles con versiones despues de esa fecha. Ciertas columnas de las tablas fueron renombradas para hacer mas facil que se adapataran a otras bases de datos, al evitar palabras clave, etc.

Si tiene una version anterior de DB y le gustaría re obtener acceso a ella, necesita correr el siguiente Script usando el DatabaseManager como fue descrito arriba:

ALTER TABLE conversations ALTER COLUMN session RENAME TO session_id; ALTER TABLE conversations ALTER COLUMN source RENAME TO source_id; ALTER TABLE conversations ALTER COLUMN date RENAME TO request_date; ALTER TABLE conversations ALTER COLUMN request_method RENAME TO request_method_id; ALTER TABLE conversations ALTER COLUMN request_uri RENAME TO request_uri_id; ALTER TABLE conversations ALTER COLUMN request_version RENAME TO request_version_id; ALTER TABLE conversations ALTER COLUMN request_content_key RENAME TO request_content_id; ALTER TABLE conversations ALTER COLUMN response_version RENAME TO response_version_id; ALTER TABLE conversations ALTER COLUMN response_message RENAME TO response_message_id; ALTER TABLE conversations ALTER COLUMN response_content_key RENAME TO response_content_id; ALTER TABLE blobs ALTER COLUMN key RENAME TO id; ALTER TABLE blobs ALTER COLUMN size RENAME TO blob_size; ALTER TABLE blobs ALTER COLUMN blob RENAME TO blob_content; ALTER TABLE headers ALTER COLUMN conversation RENAME TO conversation_id;

La cual renombrará las columnas para usted.

Retroalimentación
si tiene algun comentario o sugerencia para WebScarab-NG, por favor sientase libre de enviarlas a la lista de sitribución de OWASP WebScarab

Su retroalimentación es muy apreciada y será tomada en cuenta para versiones futura de WebScarab-NG.

Contribuyentes del proyecto
El proyecto WebScarab-NG es administrado por Rogan Dawes de Aspect Security. El puede ser contactado en rogan AT dawes.za.net