Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
exploit-writing-for-oswe — Dicas sobre como escrever scripts de exploit (mais rápido!) | Kitploit
Ferramentas/GitHubGitHub/rizemon/exploit-writing-for-oswe
Scripting e AutomaçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e EducaçãoRecursos CuradosDesenvolvimento de Payloads
GitHubrizemon/exploit-writing-for-oswe

exploit-writing-for-oswe

Dicas sobre como escrever scripts de exploit (mais rápido!)

Ver Repositório
59111216há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Escrita de Exploits para OSWE

Contexto

O quê

Este repositório contém uma lista de trechos e dicas úteis referentes à escrita de scripts de exploit nos laboratórios e no exame de certificação OSWE.

Alguns exemplos aqui podem ir contra certas práticas de programação, mas nosso objetivo final é escrever o script de exploit de forma rápida e correta.

A seção Trechos de Código é um ótimo lugar para começar se você não tem experiência no uso da biblioteca requests ou é novo em Python. Caso contrário, sinta-se à vontade para pular para a seção Código Reutilizável ou para a seção Dicas.

Por quê

  • Embora existam muitos write-ups, análises e anotações sobre a certificação, poucos recursos focam especificamente no processo de escrita de exploits.
  • Escrever o script de exploit pode ser intimidador, especialmente para quem é novo em Python ou tem pouca experiência em interagir com aplicações web por meio de código.
  • O tempo gasto na identificação de vulnerabilidades e na documentação de um relatório de exame pode variar consideravelmente, mas o tempo gasto no desenvolvimento do script de exploit pode ser minimizado e mantido constante se for bem dominado.

Índice

  • Escrita de Exploits para OSWE
    • Contexto
      • O quê
      • Por quê
    • Índice
    • Trechos de Código
      • Modelo Inicial
      • Imports úteis
      • Usando a biblioteca requests
        • Enviando a requisição HTTP mais simples
        • Especificando diferentes métodos HTTP
        • Lendo a resposta HTTP
        • Enviando dados como query string na URL (Usando o argumento params)
        • Enviando dados como query string no corpo (Usando o argumento data)
        • Enviando dados como JSON no corpo (Usando o argumento json)
        • Enviando um arquivo no corpo (Usando o argumento files)
        • Definindo cabeçalhos HTTP (Usando o argumento headers)
        • Definindo cookies HTTP (Usando o argumento cookies)
        • Desabilitando o acompanhamento de redirecionamentos 3XX (Usando o argumento allow_redirects)
        • Interagindo com um servidor HTTPS não verificado (Usando o argumento verify)
        • Enviando requisição através de um proxy HTTP (Usando o argumento proxies)
        • Criando uma Session
        • Definindo cookies persistentes
        • Definindo cabeçalhos persistentes
      • Solução de Problemas
        • Use o Wireshark e filtre por requisições HTTP
        • Imprima o conteúdo da requisição HTTP
        • Encaminhe a requisição HTTP pelo Burp Suite e inspecione
      • Código Reutilizável
        • Servindo arquivos via HTTP
        • Roubando cookies HTTP
        • Acelerando injeções SQL
    • Dicas
      • Faça uma verificação de sanidade após cada requisição HTTP usando assert
      • Imprima mensagens significativas após cada etapa
      • Separe cada etapa de exploração em sua própria função
      • Crie um objeto Session global para que ele não precise ser explicitamente passado a cada chamada de função
      • Crie uma string global BASE_URL e construa as URLs necessárias a partir dela
      • Para forçar todas as requisições HTTP a passarem pelo Burp Suite sem usar o argumento proxies, defina a variável de ambiente HTTP_PROXY / HTTPS_PROXY ao executar
      • Aplique esquemas de codificação/decodificação para permitir a transmissão segura de payloads
      • Use """ para criar a string do payload se ela contiver aspas simples (') e duplas (")
      • Acelere injeções SQL usando multithreading
      • Use um cookie de usuário autenticado fixo (hardcode) ao desenvolver exploits para funcionalidades autenticadas
      • Evite usar f-strings (f"") ou str.format se o payload contiver muitas chaves ({})

Trechos de Código

Modelo Inicial

import requests

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

if __name__ == __main__:
    main()

Imports úteis

# 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

Usando a biblioteca requests

Enviando a requisição HTTP mais simples

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

Especificando diferentes métodos 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")

Lendo a resposta 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()
Baixar ferramenta