
Consejos sobre cómo escribir scripts de exploit (¡más rápido!)
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
requestso 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.
requests
params)data)json)files)headers)cookies)3XX (Usando el argumento allow_redirects)verify)proxies)SessionassertSession global para que no tenga que pasarse explícitamente a cada llamada de funciónBASE_URL y construye las URLs necesarias a partir de ellaproxies, define la variable de entorno HTTP_PROXY / HTTPS_PROXY al ejecutar""" para crear la cadena del payload si contiene tanto comillas simples (') como comillas dobles (")f"") o str.format si el payload contiene demasiadas llaves ({})import requests
def main():
print("Hello World!")
if __name__ == __main__:
main()
# 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
requestsresp_obj = requests.get("https://github.com")
# 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")
resp_obj = requests.get("https://github.com")
# HTTP status code (e.g 404, 500, 301)
resp_obj.status_code