Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
exploit-writing-for-oswe — Советы по написанию эксплойт-скриптов (быстрее!) | Kitploit
Инструменты/GitHubGitHub/rizemon/exploit-writing-for-oswe
Скриптинг и автоматизацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеПодобранные РесурсыРазработка Полезной Нагрузки
GitHubrizemon/exploit-writing-for-oswe

exploit-writing-for-oswe

Советы по написанию эксплойт-скриптов (быстрее!)

Репозиторий
591112162 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Написание эксплойтов для OSWE

Предыстория

Что это

Этот репозиторий содержит список полезных фрагментов кода и советов, относящихся к написанию скриптов эксплойтов в лабораторных работах OSWE и на сертификационном экзамене.

Некоторые примеры здесь могут противоречить отдельным практикам программирования, но наша конечная цель — написать скрипт эксплойта быстро и правильно.

Раздел Фрагменты кода — отличная отправная точка, если у вас нет опыта работы с библиотекой requests или вы новичок в Python. В противном случае можете сразу перейти к разделу Переиспользуемый код или Советы.

Зачем

  • Хотя существует множество разборов, обзоров и заметок о сертификации, лишь немногие ресурсы специально сосредоточены на процессе написания эксплойтов.
  • Написание скрипта эксплойта может пугать, особенно тех, кто новичок в Python или имеет мало опыта взаимодействия с веб-приложениями через код.
  • Время, затрачиваемое на выявление уязвимостей и подготовку отчёта по экзамену, может значительно колебаться, но время, затрачиваемое на разработку скрипта эксплойта, можно свести к минимуму и поддерживать постоянным, если хорошо освоить этот процесс.

Оглавление

  • Написание эксплойтов для OSWE
    • Предыстория
      • Что это
      • Зачем
    • Оглавление
    • Фрагменты кода
      • Начальный шаблон
      • Полезные импорты
      • Использование библиотеки requests
        • Отправка простейшего HTTP-запроса
        • Указание различных HTTP-методов
        • Чтение HTTP-ответа
        • Отправка данных в виде строки запроса в URL (аргумент params)
        • Отправка данных в виде строки запроса в теле (аргумент data)
        • Отправка данных в виде JSON в теле (аргумент json)
        • Отправка файла в теле (аргумент files)
        • Установка HTTP-заголовков (аргумент headers)
        • Установка HTTP-куки (аргумент cookies)
        • Отключение перехода по редиректам 3XX (аргумент allow_redirects)
        • Взаимодействие с непроверенным HTTPS-сервером (аргумент verify)
        • Отправка запроса через HTTP-прокси (аргумент proxies)
        • Создание Session
        • Установка постоянных куки
        • Установка постоянных заголовков
      • Поиск и устранение неисправностей
        • Используйте Wireshark и фильтр по HTTP-запросам
        • Вывод содержимого HTTP-запроса
        • Проксирование HTTP-запроса через Burp Suite и его просмотр
      • Переиспользуемый код
        • Раздача файлов через HTTP
        • Кража HTTP-куки
        • Ускорение SQL-инъекций
    • Советы
      • Выполняйте проверку корректности после каждого HTTP-запроса с помощью assert
      • Выводите осмысленные сообщения после каждого шага
      • Разделяйте каждый шаг эксплуатации на отдельную функцию
      • Создайте глобальный объект Session, чтобы не передавать его явно в каждый вызов функции
      • Создайте глобальную строку BASE_URL и формируйте нужные URL на её основе
      • Чтобы направить все HTTP-запросы через Burp Suite без использования аргумента proxies, задайте переменную окружения HTTP_PROXY / HTTPS_PROXY при запуске
      • Применяйте схемы кодирования/декодирования для безопасной передачи полезных нагрузок
      • Используйте """ для создания строки полезной нагрузки, если она содержит как одинарные ('), так и двойные кавычки (")
      • Ускорьте SQL-инъекции с помощью многопоточности
      • Жёстко прописывайте куки аутентифицированного пользователя при разработке эксплойтов для аутентифицированных функций
      • Избегайте f-строк (f"") и str.format, если полезная нагрузка содержит слишком много фигурных скобок ({})

Фрагменты кода

Начальный шаблон

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

Использование библиотеки requests

Отправка простейшего HTTP-запроса

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

Указание различных 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")

Чтение HTTP-ответа

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"]

# Body as bytes
resp_obj.content

# Body as a string
resp_obj.text

# Body as a dictionary (if body is a JSON)
resp_obj.json()

Отправка данных в виде строки запроса в URL (аргумент params)

params = {
    "foo": "bar"
}
Скачать инструмент