Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
exploit-writing-for-oswe — Conseils pour écrire des scripts d'exploitation (plus vite !) | Kitploit
Outils/GitHubGitHub/rizemon/exploit-writing-for-oswe
Scripting et AutomatisationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationRessources OrganiséesDéveloppement de Charges Utiles
GitHubrizemon/exploit-writing-for-oswe

exploit-writing-for-oswe

Conseils pour écrire des scripts d'exploitation (plus vite !)

Voir le dépôt
59111216il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Écriture d'exploits pour OSWE

Contexte

Quoi

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 requests ou si vous débutez en Python. Sinon, n'hésitez pas à passer directement à la section Code réutilisable ou à la section Conseils.

Pourquoi

  • Bien qu'il existe de nombreux write-ups, revues et notes sur la certification, peu de ressources se concentrent spécifiquement sur le processus d'écriture d'exploits.
  • L'écriture du script d'exploit peut être intimidante, en particulier pour ceux qui débutent en Python ou qui ont peu d'expérience dans l'interaction avec des applications web via du code.
  • Le temps passé à identifier les vulnérabilités et à documenter un rapport d'examen peut varier considérablement, mais le temps consacré au développement du script d'exploit peut être minimisé et maintenu constant s'il est bien maîtrisé.

Table des matières

  • Écriture d'exploits pour OSWE
    • Contexte
      • Quoi
      • Pourquoi
    • Table des matières
    • Extraits de code
      • Modèle de départ
      • Imports utiles
      • Utilisation de la bibliothèque requests
        • Envoi de la requête HTTP la plus simple
        • Spécification de différentes méthodes HTTP
        • Lecture de la réponse HTTP
        • Envoi de données comme chaîne de requête dans l'URL (en utilisant l'argument params)
        • Envoi de données comme chaîne de requête dans le corps (en utilisant l'argument data)
        • Envoi de données comme JSON dans le corps (en utilisant l'argument json)
        • Envoi d'un fichier dans le corps (en utilisant l'argument files)
        • Définition des en-têtes HTTP (en utilisant l'argument headers)
        • Définition des cookies HTTP (en utilisant l'argument cookies)
        • Désactivation du suivi des redirections 3XX (en utilisant l'argument allow_redirects)
        • Interaction avec un serveur HTTPS non vérifié (en utilisant l'argument verify)
        • Envoi d'une requête via un proxy HTTP (en utilisant l'argument proxies)
        • Création d'une Session
        • Définition de cookies persistants
        • Définition d'en-têtes persistants
      • Dépannage
        • Utiliser Wireshark et filtrer les requêtes HTTP
        • Afficher le contenu de la requête HTTP
        • Faire passer la requête HTTP par Burp Suite et l'inspecter
      • Code réutilisable
        • Servir des fichiers via HTTP
        • Vol de cookies HTTP
        • Accélérer les injections SQL
    • Conseils
      • Effectuer une vérification de cohérence après chaque requête HTTP avec assert
      • Afficher des messages significatifs après chaque étape
      • Séparer chaque étape d'exploitation dans sa propre fonction
      • Créer un objet Session global afin qu'il n'ait pas besoin d'être explicitement passé à chaque appel de fonction
      • Créer une chaîne globale BASE_URL et construire les URL requises à partir de celle-ci
      • Pour forcer toutes les requêtes HTTP à passer par Burp Suite sans utiliser l'argument proxies, définissez la variable d'environnement HTTP_PROXY / HTTPS_PROXY au lancement
      • Appliquer des schémas d'encodage/décodage pour permettre une transmission sûre des payloads
      • Utiliser """ pour créer la chaîne du payload si elle contient à la fois des guillemets simples (') et doubles (")
      • Accélérer les injections SQL avec le multithreading
      • Coder en dur le cookie d'un utilisateur authentifié lors du développement d'exploits pour des fonctionnalités authentifiées
      • Éviter les f-strings (f"") ou str.format si le payload contient trop d'accolades ({})

Extraits de code

Modèle de départ

import requests

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

if __name__ == __main__:
    main()

Imports utiles

# 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

Utilisation de la bibliothèque requests

Envoi de la requête HTTP la plus simple

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

Spécification de différentes méthodes 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")

Lecture de la réponse HTTP

resp_obj = requests.get("https://github.com")
Télécharger l’outil