
Conseils pour écrire des scripts d'exploitation (plus vite !)
Ce dépôt contient une liste d'extraits de code et de conseils utiles concernant l'écriture de scripts d'exploit dans les laboratoires OSWE et l'examen de certification.
Certains exemples peuvent aller à l'encontre de certaines pratiques de codage, mais notre objectif final est d'écrire le script d'exploit rapidement et correctement.
La section Extraits de code est un excellent point de départ si vous n'êtes pas expérimenté avec la bibliothèque
requestsou si vous débutez en Python. Sinon, n'hésitez pas à passer directement à la section Code réutilisable ou à la section Conseils.
requests
params)data)json)files)headers)cookies)3XX (en utilisant l'argument allow_redirects)verify)proxies)SessionassertSession global afin qu'il n'ait pas besoin d'être explicitement passé à chaque appel de fonctionBASE_URL et construire les URL requises à partir de celle-ciproxies, définissez la variable d'environnement HTTP_PROXY / HTTPS_PROXY au lancement""" pour créer la chaîne du payload si elle contient à la fois des guillemets simples (') et doubles (")f"") ou str.format si le payload contient trop d'accolades ({})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")