
Tipps zum Schreiben von Exploit-Skripten (schneller!)
Dieses Repository enthält eine Liste nützlicher Snippets und Tipps, die sich auf das Schreiben von Exploit-Skripten in den OSWE-Labs und der Zertifizierungsprüfung beziehen.
Einige Beispiele hier mögen gegen bestimmte Programmierpraktiken verstoßen, aber unser oberstes Ziel ist es, das Exploit-Skript schnell und korrekt zu schreiben.
Der Abschnitt Code-Snippets ist ein guter Ausgangspunkt, wenn Sie mit der
requests-Bibliothek nicht vertraut sind oder neu in Python sind. Andernfalls können Sie direkt zum Abschnitt Wiederverwendbarer Code oder zum Abschnitt Tipps springen.
requests-Bibliothek
params-Argument)data-Argument)json-Argument)files-Argument)headers-Argument)cookies-Argument)3XX-Weiterleitungen deaktivieren (mit dem allow_redirects-Argument)verify-Argument)proxies-Argument)Session erstellenassert durchführenSession-Objekt erstellen, damit es nicht explizit an jeden Funktionsaufruf übergeben werden mussBASE_URL-String erstellen und die benötigten URLs daraus konstruierenproxies-Argument durch Burp Suite zu zwingen, setzen Sie beim Ausführen die Umgebungsvariable HTTP_PROXY / HTTPS_PROXY""", um den Payload-String zu erstellen, wenn er sowohl einfache (') als auch doppelte Anführungszeichen (") enthältf"") oder str.format, wenn der Payload zu viele geschweifte Klammern ({}) enthältimport 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
requests-Bibliothekresp_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
# HTTP response headers (e.g Location, Content-Disposition)
resp_obj.headers["Location"]