Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
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
exploit-writing-for-oswe — Consejos sobre cómo escribir scripts de exploit (¡más rápido!) | Kitploit
Herramientas/GitHubGitHub/rizemon/exploit-writing-for-oswe
Scripting y AutomatizaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y EducaciónRecursos CuradosDesarrollo de Payloads
GitHubrizemon/exploit-writing-for-oswe

exploit-writing-for-oswe

Consejos sobre cómo escribir scripts de exploit (¡más rápido!)

Ver Repositorio
59111216hace 2 añosRevisado por Kitploit

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

Escritura de Exploits para OSWE

Antecedentes

Qué

Este repositorio contiene una lista de fragmentos de código (snippets) y consejos útiles relacionados con la escritura de scripts de exploits en los laboratorios y el examen de certificación OSWE.

Algunos ejemplos aquí pueden ir en contra de ciertas prácticas de programación, pero nuestro objetivo final es escribir el script de exploit rápido y correctamente.

La sección Fragmentos de Código es un excelente punto de partida si no tienes experiencia usando la librería requests o eres nuevo en Python. De lo contrario, siéntete libre de ir directamente a la sección Código Reutilizable o a la sección Consejos.

Por qué

  • Si bien existen muchos write-ups, reseñas y notas sobre la certificación, pocos recursos se centran específicamente en el proceso de escribir exploits.
  • Escribir el script de exploit puede ser desalentador, especialmente para quienes son nuevos en Python o tienen poca experiencia interactuando con aplicaciones web a través de código.
  • El tiempo dedicado a identificar vulnerabilidades y documentar un informe de examen puede fluctuar considerablemente, pero el tiempo dedicado a desarrollar el script de exploit puede ser minimizado y mantenido constante si se domina bien.

Tabla de Contenidos

  • Escritura de Exploits para OSWE
    • Antecedentes
      • Qué
      • Por qué
    • Tabla de Contenidos
    • Fragmentos de Código
      • Plantilla Inicial
      • Imports útiles
      • Usando la librería requests
        • Enviando la petición HTTP más simple
        • Especificando diferentes métodos HTTP
        • Leyendo la respuesta HTTP
        • Enviando datos como query string en la URL (Usando el argumento params)
        • Enviando datos como query string en el cuerpo (Usando el argumento data)
        • Enviando datos como JSON en el cuerpo (Usando el argumento json)
        • Enviando un archivo en el cuerpo (Usando el argumento files)
        • Configurando cabeceras HTTP (Usando el argumento headers)
        • Configurando cookies HTTP (Usando el argumento cookies)
        • Deshabilitando el seguimiento de redirecciones 3XX (Usando el argumento allow_redirects)
        • Interactuando con un servidor HTTPS no verificado (Usando el argumento verify)
        • Enviando peticiones a través de un proxy HTTP (Usando el argumento proxies)
        • Creando una Session
        • Configurando cookies persistentes
        • Configurando cabeceras persistentes
      • Solución de problemas
        • Usa Wireshark y filtra las peticiones HTTP
        • Imprime el contenido de la petición HTTP
        • Envía la petición HTTP a través del proxy de Burp Suite e inspecciónala
      • Código reutilizable
        • Sirviendo archivos vía HTTP
        • Robando cookies HTTP
        • Acelerando inyecciones SQL
    • Consejos
      • Realiza una comprobación de sanidad después de cada petición HTTP usando assert
      • Imprime mensajes significativos después de cada paso
      • Separa cada paso de explotación en su propia función
      • Crea un objeto Session global para que no tenga que pasarse explícitamente a cada llamada de función
      • Crea una cadena global BASE_URL y construye las URLs necesarias a partir de ella
      • Para forzar que todas las peticiones HTTP pasen por Burp Suite sin usar el argumento proxies, define la variable de entorno HTTP_PROXY / HTTPS_PROXY al ejecutar
      • Aplica esquemas de codificación/decodificación para permitir la transmisión segura de payloads
      • Usa """ para crear la cadena del payload si contiene tanto comillas simples (') como comillas dobles (")
      • Acelera las inyecciones SQL usando multithreading
      • Fija (hardcodea) la cookie de un usuario autenticado al desarrollar exploits para funcionalidades autenticadas
      • Evita usar f-strings (f"") o str.format si el payload contiene demasiadas llaves ({})

Fragmentos de Código

Plantilla Inicial

import requests

def main():
    print("Hello World!")

if __name__ == __main__:
    main()

Imports útiles

# For sending HTTP requests
import requests

# For Base64 encoding/decoding
from base64 import b64encode, b64decode, urlsafe_b64encode, urlsafe_b64decode

# For getting current time or for calculating time delays
from time import time

# For regular expressions
import re

# For running shell commands
import subprocess

# For multithreading
from concurrent.futures import ThreadPoolExecutor

# For running a HTTP server in the background
import threading
from http.server import HTTPServer, BaseHTTPRequestHandler

# For parsing HTTP cookies
from http import cookies

# For getting command-line arguments
import sys

Usando la librería requests

Enviando la petición HTTP más simple

resp_obj = requests.get("https://github.com")

Especificando diferentes métodos HTTP

# GET method
requests.get("https://github.com")

# POST method
requests.post("https://github.com")

# PUT method
requests.put("https://github.com")

# PATCH method
requests.patch("https://github.com")

# DELETE method
requests.delete("https://github.com")

Leyendo la respuesta HTTP

resp_obj = requests.get("https://github.com")

# HTTP status code (e.g 404, 500, 301)
resp_obj.status_code
Descargar herramienta