Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
perwendel__spark_CVE-2018-9159_2_7_2_fixed — Marco web ligero para Java 8 para construir APIs REST y aplicaciones web, con enrutamiento integrado, servicio de archivos estáticos y soporte para motores de plantillas. | Kitploit
Herramientas/GitHubGitHub/shoucheng3/perwendel__spark_cve-2018-9159_2_7_2_fixed
Utilidades de Propósito GeneralAnálisis de VulnerabilidadesPruebas de Seguridad de APIsSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubshoucheng3/perwendel__spark_cve-2018-9159_2_7_2_fixed

perwendel__spark_CVE-2018-9159_2_7_2_fixed

Marco web ligero para Java 8 para construir APIs REST y aplicaciones web, con enrutamiento integrado, servicio de archivos estáticos y soporte para motores de plantillas.

Ver Repositorio
17hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Spark: un micro framework web para Java 8

NOTICIAS: Spark 2.7.1 ya está disponible. Pruébalo y reporta cualquier error.

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.7.1</version>
</dependency>

Importante: existe una vulnerabilidad en versiones antiguas de Spark (versiones anteriores a la 2.5.2). Actualiza a la última versión.

Para documentación, visita: http://sparkjava.com/documentation

Para preguntas sobre uso, utiliza stack overflow con la etiqueta “spark-java”

Javadoc: http://javadoc.io/doc/com.sparkjava/spark-core

Cómo empezar

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.7.1</version>
</dependency>
import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/hello", (request, response) -> "Hello World!");
    }
}

Ver en: http://localhost:4567/hello

Revisa y prueba los ejemplos incluidos en el código fuente. También puedes consultar el javadoc. Después de obtener el código desde github ejecuta:

mvn javadoc:javadoc

El resultado se guarda en /target/site/apidocs

Ejemplos

Ejemplo sencillo que muestra algunas funcionalidades básicas

import static spark.Spark.*;

/**
 * Un ejemplo sencillo que solo muestra algunas funcionalidades básicas
 */
public class SimpleExample {

    public static void main(String[] args) {

        //  port(5678); <- Descomenta esto si quieres que Spark escuche en el puerto 5678 en lugar del 4567 por defecto

        get("/hello", (request, response) -> "Hello World!");

        post("/hello", (request, response) ->
            "Hello World: " + request.body()
        );

        get("/private", (request, response) -> {
            response.status(401);
            return "Go Away!!!";
        });

        get("/users/:name", (request, response) -> "Selected user: " + request.params(":name"));

        get("/news/:section", (request, response) -> {
            response.type("text/xml");
            return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><news>" + request.params("section") + "</news>";
        });

        get("/protected", (request, response) -> {
            halt(403, "I don't think so!!!");
            return null;
        });

        get("/redirect", (request, response) -> {
            response.redirect("/news/world");
            return null;
        });

        get("/", (request, response) -> "root");
    }
}


Un ejemplo CRUD sencillo que muestra cómo crear, obtener, actualizar y eliminar recursos de libros

import static spark.Spark.*;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * Un ejemplo CRUD sencillo que muestra cómo crear, obtener, actualizar y eliminar recursos de libros.
 */
public class Books {

    /**
     * Map que contiene los libros
     */
    private static Map<String, Book> books = new HashMap<String, Book>();

    public static void main(String[] args) {
        final Random random = new Random();

        // Crea un nuevo recurso de libro; devolverá el ID al recurso creado
        // author y title se envían en el cuerpo del post como valores x-www-urlencoded, p. ej. author=Foo&title=Bar
        // se obtienen usando request.queryParams("valuename")
        post("/books", (request, response) -> {
            String author = request.queryParams("author");
            String title = request.queryParams("title");
            Book book = new Book(author, title);

            int id = random.nextInt(Integer.MAX_VALUE);
            books.put(String.valueOf(id), book);

            response.status(201); // 201 Created
            return id;
        });

        // Obtiene el recurso de libro para el id proporcionado
        get("/books/:id", (request, response) -> {
            Book book = books.get(request.params(":id"));
            if (book != null) {
                return "Title: " + book.getTitle() + ", Author: " + book.getAuthor();
            } else {
                response.status(404); // 404 Not found
                return "Book not found";
            }
        });

        // Actualiza el recurso de libro para el id proporcionado con nueva información
        // author y title se envían en el cuerpo de la petición como valores x-www-urlencoded, p. ej. author=Foo&title=Bar
        // se obtienen usando request.queryParams("valuename")
        put("/books/:id", (request, response) -> {
            String id = request.params(":id");
            Book book = books.get(id);
            if (book != null) {
                String newAuthor = request.queryParams("author");
                String newTitle = request.queryParams("title");
                if (newAuthor != null) {
                    book.setAuthor(newAuthor);
                }
                if (newTitle != null) {
                    book.setTitle(newTitle);
                }
                return "Book with id '" + id + "' updated";
            } else {
                response.status(404); // 404 Not found
                return "Book not found";
            }
        });

        // Elimina el recurso de libro para el id proporcionado
        delete("/books/:id", (request, response) -> {
            String id = request.params(":id");
            Book book = books.remove(id);
            if (book != null) {
                return "Book with id '" + id + "' deleted";
            } else {
                response.status(404); // 404 Not found
                return "Book not found";
            }
        });

        // Obtiene todos los recursos de libro disponibles (ids)
        get("/books", (request, response) -> {
            String ids = "";
            for (String id : books.keySet()) {
                ids += id + " ";
            }
            return ids;
        });
    }

    public static class Book {

        public String author, title;

        public Book(String author, String title) {
            this.author = author;
            this.title = title;
        }

        public String getAuthor() {
            return author;
        }

        public void setAuthor(String author) {
            this.author = author;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }
    }
}

Ejemplo que muestra un filtro de autenticación muy simple (y poco serio) que se ejecuta antes que todos los demás recursos

import static spark.Spark.*;

import java.util.HashMap;
import java.util.Map;

/**
 * Ejemplo que muestra un filtro de autenticación muy simple (y poco serio) que se
 * ejecuta antes que todos los demás recursos.
 *
 * Al solicitar el recurso con, p. ej.
 *     http://localhost:4567/hello?user=some&password=guy
 * el filtro detendrá la ejecución y el cliente recibirá un 401 UNAUTHORIZED con el contenido 'You are not welcome here'
 *
 * Al solicitar el recurso con, p. ej.
 *     http://localhost:4567/hello?user=foo&password=bar
 * el filtro aceptará la petición y continuará hasta la ruta /hello.
 *
 * Nota: Hay un segundo "before filter" que añade una cabecera a la respuesta
 * Nota: También hay un "after filter" que añade una cabecera a la respuesta
 */
public class FilterExample {
Descargar herramienta