Metadata-Version: 2.4
Name: robotframework-robotsec
Version: 0.1.0
Summary: Robot Framework security testing library based on OWASP guidelines
Author: Samuel Teles, Wallison Aquino, Ismayle Santos
License-Expression: MIT
Project-URL: Homepage, https://github.com/WallyAq/biblio
Project-URL: Repository, https://github.com/WallyAq/biblio
Project-URL: Issues, https://github.com/WallyAq/biblio/issues
Keywords: robotframework,security,testing,owasp,pentesting,sql-injection,xss,ssrf,brute-force
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Robot Framework
Classifier: Framework :: Robot Framework :: Library
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: robotframework>=5.0
Requires-Dist: requests>=2.28
Dynamic: license-file

# OWASP Test Guild - README


## Índice

* [Explorar SQL Injection](#explorar-sql-injection)
* [Test Command Injection](#test-command-injection)
* [Test LDAP Injection](#test-ldap-injection)
* [Test NoSQL Injection](#test-nosql-injection)
* [Should Use HTTPS](#should-use-https)
* [Validate Sensitive Data Exposure](#validate-sensitive-data-exposure)
* [Validate Password Is Encrypted](#validate-password-is-encrypted)
* [Check Weak Hash Algorithm](#check-weak-hash-algorithm)
* [Validate File Integrity](#validate-file-integrity)
* [Check Unsigned Updates](#check-unsigned-updates)
* [Test CI/CD Pipeline Security](#test-cicd-pipeline-security)
* [Test Rate Limiting](#test-rate-limiting)
* [Validate Business Logic Flaw](#validate-business-logic-flaw)
* [Test Brute Force Protection](#test-brute-force-protection)
* [Validate Workflow Enforcement](#validate-workflow-enforcement)
* [Check Dependency Vulnerabilities](#check-dependency-vulnerabilities)
* [Validate Component Version](#validate-component-version)
* [Scan Known CVEs](#scan-known-cves)
* [Test SSRF External Callback](#test-ssrf-external-callback)
* [Validate URL Input Sanitization](#validate-url-input-sanitization)
* [Validate Security Logging](#validate-security-logging)
* [Check Log for Failed Logins](#check-log-for-failed-logins)
* [Validate Alerting Mechanism](#validate-alerting-mechanism)
* [Should Not Access Resource Without Authentication](#should-not-access-resource-without-authentication)
* [Should Not Access Resource With Different User Role](#should-not-access-resource-with-different-user-role)
* [Validate Horizontal Privilege Escalation](#validate-horizontal-privilege-escalation)
* [Validate Vertical Privilege Escalation](#validate-vertical-privilege-escalation)
* [Check Default Credentials](#check-default-credentials)
* [Validate Security Headers](#validate-security-headers)
* [Check Open Ports](#check-open-ports)
* [Validate Debug Mode Disabled](#validate-debug-mode-disabled)
* [Test Weak Password Policy](#test-weak-password-policy)
* [Test Account Lockout](#test-account-lockout)
* [Validate Session Management](#validate-session-management)
* [Test Credential Stuffing](#test-credential-stuffing)

---

<a id="explorar-sql-injection"></a>

# Explorar SQL Injection

## Objetivo

Realiza testes de SQL Injection em endpoints de autenticação.

## Parâmetros

| Variável         | Tipo   | Descrição                         |
| ---------------- | ------ | --------------------------------- |
| url_base         | string | URL base da aplicação             |
| endpoint         | string | Endpoint de login                 |
| email_payload    | string | Payload enviado no campo email    |
| password_payload | string | Payload enviado no campo password |

## Funcionamento

A keyword envia uma requisição POST para o endpoint de autenticação utilizando payloads maliciosos.
A keyword envia uma requisição POST para o endpoint de autenticação utilizando payloads maliciosos.

O teste verifica:

* Respostas HTTP 200 inesperadas
* Presença de token na resposta
* Presença de token na resposta
* Possível bypass de autenticação

## Como Foi Feita

A implementação utiliza requests.post() para enviar payloads SQL Injection e analisa a resposta da aplicação.
A implementação utiliza requests.post() para enviar payloads SQL Injection e analisa a resposta da aplicação.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar SQL Injection
    Explorar SQL Injection
    ...    https://api.exemplo.com
    ...    /login
    ...    ' OR 1=1 --
    ...    qualquer_senha
```

---

<a id="test-command-injection"></a>

# Test Command Injection

## Objetivo

Valida vulnerabilidades de Command Injection em parâmetros HTTP.

## Parâmetros

| Variável      | Tipo   | Descrição                              |
| ------------- | ------ | -------------------------------------- |
| url           | string | URL alvo                               |
| param_name    | string | Nome do parâmetro vulnerável           |
| payloads      | list   | Lista de payloads de Command Injection |
| blind_payload | string | Payload utilizado em blind injection   |
| blind_payload | string | Payload utilizado em blind injection   |

## Funcionamento

A keyword envia payloads maliciosos via query string.
A keyword envia payloads maliciosos via query string.

O teste verifica:

* Execução de comandos Unix/Linux
* Respostas contendo uid=
* Respostas contendo uid=
* Delays causados por blind injection

## Como Foi Feita

Utiliza requests.get() para envio dos payloads e mede tempo de resposta para identificar blind injection.
Utiliza requests.get() para envio dos payloads e mede tempo de resposta para identificar blind injection.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Command Injection
    Test Command Injection
    ...    https://site.com/ping
    ...    host
    ...    ${PAYLOADS}
    ...    ; sleep 5
```

---

<a id="test-ldap-injection"></a>

# Test LDAP Injection

## Objetivo

Realiza testes de LDAP Injection em endpoints de autenticação.
Realiza testes de LDAP Injection em endpoints de autenticação.

## Parâmetros

| Variável         | Tipo   | Descrição                   |
| ---------------- | ------ | --------------------------- |
| url_base         | string | URL base                    |
| endpoint         | string | Endpoint alvo               |
| user_payload     | string | Payload enviado no username |
| password_payload | string | Payload enviado no password |
| Variável         | Tipo   | Descrição                   |
| ---------------- | ------ | --------------------------- |
| url_base         | string | URL base                    |
| endpoint         | string | Endpoint alvo               |
| user_payload     | string | Payload enviado no username |
| password_payload | string | Payload enviado no password |

## Funcionamento

Envia payloads LDAP maliciosos para autenticação.
Envia payloads LDAP maliciosos para autenticação.

O teste verifica:
O teste verifica:

* Login bypass
* Login bypass
* Respostas HTTP 200 inesperadas
* Tokens retornados pela aplicação
* Tokens retornados pela aplicação

## Como Foi Feita

A implementação utiliza requests.post() enviando JSON malicioso.
A implementação utiliza requests.post() enviando JSON malicioso.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar LDAP Injection
    Test LDAP Injection
    ...    https://api.site.com
    ...    https://api.site.com
    ...    /auth
    ...    *)(uid=*))(|(uid=*
    ...    senha
    ...    *)(uid=*))(|(uid=*
    ...    senha
```

---

<a id="test-nosql-injection"></a>

# Test NoSQL Injection

## Objetivo

Realiza testes de NoSQL Injection em aplicações NoSQL.
Realiza testes de NoSQL Injection em aplicações NoSQL.

## Parâmetros

| Variável | Tipo   | Descrição     |
| -------- | ------ | ------------- |
| url_base | string | URL base      |
| endpoint | string | Endpoint alvo |
| Variável | Tipo   | Descrição     |
| -------- | ------ | ------------- |
| url_base | string | URL base      |
| endpoint | string | Endpoint alvo |

## Funcionamento

Envia payloads MongoDB utilizando operadores como $ne.
Envia payloads MongoDB utilizando operadores como $ne.

O teste verifica:

* Bypass de autenticação
* Respostas HTTP 200 inesperadas

## Como Foi Feita

Utiliza requests.post() enviando payload JSON malicioso.
Utiliza requests.post() enviando payload JSON malicioso.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar NoSQL Injection
    Test NoSQL Injection
    ...    https://api.site.com
    ...    https://api.site.com
    ...    /login
```

---

<a id="should-use-https"></a>

# Should Use HTTPS

## Objetivo

Valida se a aplicação utiliza HTTPS.
Valida se a aplicação utiliza HTTPS.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |
| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

A keyword realiza requisição HTTP e verifica o protocolo final.
A keyword realiza requisição HTTP e verifica o protocolo final.

O teste verifica:
O teste verifica:

* Uso de HTTPS
* Redirecionamentos inseguros
* Uso de HTTPS
* Redirecionamentos inseguros

## Como Foi Feita

Utiliza requests.get() com allow_redirects=True.
Utiliza requests.get() com allow_redirects=True.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar HTTPS
    Should Use HTTPS
    ...    https://site.com
    ...    https://site.com
```

---

<a id="validate-sensitive-data-exposure"></a>

# Validate Sensitive Data Exposure

## Objetivo

Identifica exposição de dados sensíveis.
Identifica exposição de dados sensíveis.

## Parâmetros

| Variável | Tipo   | Descrição       |
| -------- | ------ | --------------- |
| url      | string | URL alvo        |
| method   | string | Método HTTP     |
| payload  | dict   | Payload enviado |
| Variável | Tipo   | Descrição       |
| -------- | ------ | --------------- |
| url      | string | URL alvo        |
| method   | string | Método HTTP     |
| payload  | dict   | Payload enviado |

## Funcionamento

Analisa respostas HTTP buscando padrões sensíveis.
Analisa respostas HTTP buscando padrões sensíveis.

O teste verifica:
O teste verifica:

* Passwords expostas
* Tokens
* API Keys
* Emails

## Como Foi Feita

Utiliza regex para identificar dados sensíveis na resposta.
Utiliza regex para identificar dados sensíveis na resposta.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Exposição
Validar Exposição
    Validate Sensitive Data Exposure
    ...    https://api.site.com/users
```

---

# Validate Password Is Encrypted

## Objetivo

Verifica se senhas são retornadas em texto puro.

## Parâmetros

| Variável | Tipo   | Descrição              |
| -------- | ------ | ---------------------- |
| url      | string | Endpoint alvo          |
| payload  | dict   | Payload contendo senha |

## Funcionamento

Realiza requisição POST e verifica se a senha enviada aparece na resposta.

## Como Foi Feita

A keyword compara o conteúdo da resposta com a senha enviada.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Senha Criptografada
    Validate Password Is Encrypted
    ...    https://api.site.com/register
    ...    ${PAYLOAD}
```

---

# Check Weak Hash Algorithm

## Objetivo

Detecta uso de hashes fracos.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa respostas procurando hashes MD5 e SHA1.

## Como Foi Feita

Utiliza expressões regulares para detectar padrões de hash.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Hash Fraco
    Check Weak Hash Algorithm
    ...    https://site.com
```

---

# Validate File Integrity

## Objetivo

Valida integridade de arquivos utilizando hash.

## Parâmetros

| Variável      | Tipo   | Descrição      |
| ------------- | ------ | -------------- |
| file_url      | string | URL do arquivo |
| expected_hash | string | Hash esperado  |
| algorithm     | string | Algoritmo hash |

## Funcionamento

Baixa o arquivo e compara o hash calculado com o esperado.

## Como Foi Feita

Utiliza hashlib para cálculo do hash.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Integridade
    Validate File Integrity
    ...    https://site.com/file.zip
    ...    HASH
    ...    sha256
```

---

# Check Unsigned Updates

## Objetivo

Valida se updates sem assinatura digital são aceitos.

## Funcionamento

Remove o campo de assinatura do payload e envia novamente.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Update Sem Assinatura
    Check Unsigned Updates
    ...    https://site.com/update
    ...    ${PAYLOAD}
```

---

# Test CI/CD Pipeline Security

## Objetivo

Analisa exposições inseguras em pipelines CI/CD.

## Funcionamento

Verifica endpoints sensíveis como .env, Jenkinsfile e arquivos de pipeline.

O teste verifica:

* Exposição de segredos
* Headers inseguros
* Fingerprinting
* APIs expostas

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Pipeline
    Test CI/CD Pipeline Security
    ...    https://site.com
    ...    ${ENDPOINTS}
```

---

# Test Rate Limiting

## Objetivo

Valida proteção contra excesso de requisições.

## Funcionamento

Executa múltiplas requisições consecutivas.

O teste verifica:

* HTTP 429
* Bloqueios automáticos

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Rate Limit
    Test Rate Limiting
    ...    https://api.site.com/login
```

---

# Validate Business Logic Flaw

## Objetivo

Identifica falhas de lógica de negócio.

## Funcionamento

Executa fluxos inesperados tentando burlar validações.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Business Logic
    Validate Business Logic Flaw
    ...    https://site.com/payment
```

---

# Test Brute Force Protection

## Objetivo

Valida proteção contra brute force.

## Funcionamento

Executa múltiplas tentativas de login inválidas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Brute Force
    Test Brute Force Protection
    ...    https://api.site.com
    ...    /login
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Workflow Enforcement

## Objetivo

Verifica se fluxos obrigatórios da aplicação são corretamente aplicados.

## Parâmetros

| Variável        | Tipo   | Descrição       |
| --------------- | ------ | --------------- |
| url             | string | URL alvo        |
| method          | string | Método HTTP     |
| payload         | dict   | Payload enviado |
| expected_status | int    | Status esperado |

## Funcionamento

Executa requisições tentando burlar etapas obrigatórias do sistema.

## Como Foi Feita

Utiliza requests.get() e requests.post() validando códigos HTTP inesperados.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Workflow
    Validate Workflow Enforcement
    ...    https://api.site.com/checkout
    ...    POST
    ...    ${PAYLOAD}
    ...    403
```

---

# Check Dependency Vulnerabilities

## Objetivo

Identifica dependências vulneráveis e arquivos sensíveis expostos.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa assets JavaScript, bibliotecas frontend, manifests e headers.

## Como Foi Feita

A implementação utiliza BeautifulSoup e regex para identificar tecnologias vulneráveis.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Dependências
    Check Dependency Vulnerabilities
    ...    https://site.com
```

---

# Validate Component Version

## Objetivo

Detecta versões vulneráveis de bibliotecas e componentes.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa arquivos JavaScript e detecta versões inseguras.

## Como Foi Feita

Utiliza regex e fingerprinting de assets.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Componentes
    Validate Component Version
    ...    https://site.com
```

---

# Scan Known CVEs

## Objetivo

Consulta vulnerabilidades conhecidas utilizando CVEs.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Detecta bibliotecas e consulta a API OSV.

## Como Foi Feita

Utiliza requests e integração com api.osv.dev.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar CVEs
    Scan Known CVEs
    ...    https://site.com
```

---

# Test SSRF External Callback

## Objetivo

Valida vulnerabilidades SSRF utilizando callback externo.

## Parâmetros

| Variável     | Tipo   | Descrição         |
| ------------ | ------ | ----------------- |
| url          | string | URL alvo          |
| param_name   | string | Nome do parâmetro |
| callback_url | string | URL de callback   |

## Funcionamento

Envia URLs externas para validar requisições server-side.

## Como Foi Feita

Utiliza requests.get() enviando URLs maliciosas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar SSRF
    Test SSRF External Callback
    ...    https://site.com/fetch
    ...    url
    ...    https://webhook.site/test
```

---

# Validate URL Input Sanitization

## Objetivo

Verifica sanitização de entradas URL.

## Parâmetros

| Variável   | Tipo   | Descrição         |
| ---------- | ------ | ----------------- |
| url        | string | URL alvo          |
| param_name | string | Nome do parâmetro |

## Funcionamento

Envia múltiplos protocolos maliciosos.

## Como Foi Feita

A implementação utiliza requests.get() com payloads SSRF.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Sanitização
    Validate URL Input Sanitization
    ...    https://site.com/import
    ...    file
```

---

# Validate Security Logging

## Objetivo

Valida logs de segurança.

## Parâmetros

| Variável   | Tipo   | Descrição       |
| ---------- | ------ | --------------- |
| action_url | string | URL da ação     |
| log_url    | string | URL dos logs    |
| payload    | dict   | Payload enviado |
| method     | string | Método HTTP     |

## Funcionamento

Executa ações inseguras e verifica geração de logs.

## Como Foi Feita

Utiliza requests para executar ações e consultar logs.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Logs
    Validate Security Logging
    ...    https://site.com/login
    ...    https://site.com/logs
```

---

# Check Log for Failed Logins

## Objetivo

Valida logs de falhas de login.

## Parâmetros

| Variável       | Tipo   | Descrição      |
| -------------- | ------ | -------------- |
| login_url      | string | URL de login   |
| log_url        | string | URL dos logs   |
| email          | string | Usuário        |
| wrong_password | string | Senha inválida |

## Funcionamento

Executa login inválido e valida geração de logs.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Log Login
    Check Log for Failed Logins
    ...    https://site.com/login
    ...    https://site.com/logs
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Alerting Mechanism

## Objetivo

Valida mecanismos de alerta.

## Parâmetros

| Variável       | Tipo   | Descrição            |
| -------------- | ------ | -------------------- |
| login_url      | string | URL login            |
| alert_url      | string | URL alertas          |
| email          | string | Usuário              |
| wrong_password | string | Senha inválida       |
| attempts       | int    | Número de tentativas |

## Funcionamento

Executa múltiplas falhas de login para disparar alertas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Alertas
    Validate Alerting Mechanism
    ...    https://site.com/login
    ...    https://site.com/alerts
    ...    admin@site.com
    ...    senhaerrada
```

---

# Should Not Access Resource Without Authentication

## Objetivo

Valida bloqueio de acesso sem autenticação.

## Parâmetros

| Variável | Tipo   | Descrição     |
| -------- | ------ | ------------- |
| url      | string | URL protegida |
| method   | string | Método HTTP   |

## Funcionamento

Tenta acessar recursos protegidos sem token.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Auth
    Should Not Access Resource Without Authentication
    ...    https://site.com/admin
```

---

# Should Not Access Resource With Different User Role

## Objetivo

Valida controle de acesso por perfil.

## Parâmetros

| Variável | Tipo   | Descrição            |
| -------- | ------ | -------------------- |
| url      | string | URL protegida        |
| headers  | dict   | Headers autenticados |

## Funcionamento

Executa acesso utilizando usuário sem permissão.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Role
    Should Not Access Resource With Different User Role
    ...    https://site.com/admin
    ...    ${HEADERS}
```

---

# Validate Horizontal Privilege Escalation

## Objetivo

Valida escalonamento horizontal de privilégios.

## Parâmetros

| Variável          | Tipo   | Descrição            |
| ----------------- | ------ | -------------------- |
| url               | string | URL alvo             |
| headers           | dict   | Headers autenticados |
| forbidden_user_id | string | ID proibido          |

## Funcionamento

Tenta acessar dados de outro usuário.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Escalonamento Horizontal
    Validate Horizontal Privilege Escalation
    ...    https://site.com/user/2
    ...    ${HEADERS}
    ...    2
```

---

# Validate Vertical Privilege Escalation

## Objetivo

Valida escalonamento vertical de privilégios.

## Parâmetros

| Variável | Tipo   | Descrição            |
| -------- | ------ | -------------------- |
| url      | string | URL administrativa   |
| headers  | dict   | Headers autenticados |

## Funcionamento

Verifica acesso indevido a funções administrativas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Escalonamento Vertical
    Validate Vertical Privilege Escalation
    ...    https://site.com/admin
    ...    ${HEADERS}
```

---

# Check Default Credentials

## Objetivo

Testa credenciais padrão conhecidas.

## Parâmetros

| Variável         | Tipo   | Descrição            |
| ---------------- | ------ | -------------------- |
| url              | string | URL base             |
| endpoint         | string | Endpoint login       |
| credentials_list | list   | Lista de credenciais |

## Funcionamento

Executa múltiplos logins com usuários padrão.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Credenciais Padrão
    Check Default Credentials
    ...    https://site.com
    ...    /login
    ...    ${CREDS}
    ...    https://api.site.com/users
```

---

<a id="validate-password-is-encrypted"></a>

# Validate Password Is Encrypted

## Objetivo

Verifica se senhas são retornadas em texto puro.

## Parâmetros

| Variável | Tipo   | Descrição              |
| -------- | ------ | ---------------------- |
| url      | string | Endpoint alvo          |
| payload  | dict   | Payload contendo senha |

## Funcionamento

Realiza requisição POST e verifica se a senha enviada aparece na resposta.

## Como Foi Feita

A keyword compara o conteúdo da resposta com a senha enviada.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Senha Criptografada
    Validate Password Is Encrypted
    ...    https://api.site.com/register
    ...    ${PAYLOAD}
```

---

<a id="check-weak-hash-algorithm"></a>

# Check Weak Hash Algorithm

## Objetivo

Detecta uso de hashes fracos.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa respostas procurando hashes MD5 e SHA1.

## Como Foi Feita

Utiliza expressões regulares para detectar padrões de hash.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Hash Fraco
    Check Weak Hash Algorithm
    ...    https://site.com
```

---

<a id="validate-file-integrity"></a>

# Validate File Integrity

## Objetivo

Valida integridade de arquivos utilizando hash.

## Parâmetros

| Variável      | Tipo   | Descrição      |
| ------------- | ------ | -------------- |
| file_url      | string | URL do arquivo |
| expected_hash | string | Hash esperado  |
| algorithm     | string | Algoritmo hash |

## Funcionamento

Baixa o arquivo e compara o hash calculado com o esperado.

## Como Foi Feita

Utiliza hashlib para cálculo do hash.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Integridade
    Validate File Integrity
    ...    https://site.com/file.zip
    ...    HASH
    ...    sha256
```

---

<a id="check-unsigned-updates"></a>

# Check Unsigned Updates

## Objetivo

Valida se updates sem assinatura digital são aceitos.

## Funcionamento

Remove o campo de assinatura do payload e envia novamente.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Update Sem Assinatura
    Check Unsigned Updates
    ...    https://site.com/update
    ...    ${PAYLOAD}
```

---

# Test CI/CD Pipeline Security

## Objetivo

Analisa exposições inseguras em pipelines CI/CD.

## Funcionamento

Verifica endpoints sensíveis como .env, Jenkinsfile e arquivos de pipeline.

O teste verifica:

* Exposição de segredos
* Headers inseguros
* Fingerprinting
* APIs expostas

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Pipeline
    Test CI/CD Pipeline Security
    ...    https://site.com
    ...    ${ENDPOINTS}
```

---

# Test Rate Limiting

## Objetivo

Valida proteção contra excesso de requisições.

## Funcionamento

Executa múltiplas requisições consecutivas.

O teste verifica:

* HTTP 429
* Bloqueios automáticos

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Rate Limit
    Test Rate Limiting
    ...    https://api.site.com/login
```

---

# Validate Business Logic Flaw

## Objetivo

Identifica falhas de lógica de negócio.

## Funcionamento

Executa fluxos inesperados tentando burlar validações.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Business Logic
    Validate Business Logic Flaw
    ...    https://site.com/payment
```

---

# Test Brute Force Protection

## Objetivo

Valida proteção contra brute force.

## Funcionamento

Executa múltiplas tentativas de login inválidas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Brute Force
    Test Brute Force Protection
    ...    https://api.site.com
    ...    /login
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Workflow Enforcement

## Objetivo

Verifica se fluxos obrigatórios da aplicação são corretamente aplicados.

## Parâmetros

| Variável        | Tipo   | Descrição       |
| --------------- | ------ | --------------- |
| url             | string | URL alvo        |
| method          | string | Método HTTP     |
| payload         | dict   | Payload enviado |
| expected_status | int    | Status esperado |

## Funcionamento

Executa requisições tentando burlar etapas obrigatórias do sistema.

## Como Foi Feita

Utiliza requests.get() e requests.post() validando códigos HTTP inesperados.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Workflow
    Validate Workflow Enforcement
    ...    https://api.site.com/checkout
    ...    POST
    ...    ${PAYLOAD}
    ...    403
```

---

# Check Dependency Vulnerabilities

## Objetivo

Identifica dependências vulneráveis e arquivos sensíveis expostos.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa assets JavaScript, bibliotecas frontend, manifests e headers.

## Como Foi Feita

A implementação utiliza BeautifulSoup e regex para identificar tecnologias vulneráveis.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Dependências
    Check Dependency Vulnerabilities
    ...    https://site.com
```

---

# Validate Component Version

## Objetivo

Detecta versões vulneráveis de bibliotecas e componentes.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Analisa arquivos JavaScript e detecta versões inseguras.

## Como Foi Feita

Utiliza regex e fingerprinting de assets.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Componentes
    Validate Component Version
    ...    https://site.com
```

---

# Scan Known CVEs

## Objetivo

Consulta vulnerabilidades conhecidas utilizando CVEs.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Detecta bibliotecas e consulta a API OSV.

## Como Foi Feita

Utiliza requests e integração com api.osv.dev.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar CVEs
    Scan Known CVEs
    ...    https://site.com
```

---

# Test SSRF External Callback

## Objetivo

Valida vulnerabilidades SSRF utilizando callback externo.

## Parâmetros

| Variável     | Tipo   | Descrição         |
| ------------ | ------ | ----------------- |
| url          | string | URL alvo          |
| param_name   | string | Nome do parâmetro |
| callback_url | string | URL de callback   |

## Funcionamento

Envia URLs externas para validar requisições server-side.

## Como Foi Feita

Utiliza requests.get() enviando URLs maliciosas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar SSRF
    Test SSRF External Callback
    ...    https://site.com/fetch
    ...    url
    ...    https://webhook.site/test
```

---

# Validate URL Input Sanitization

## Objetivo

Verifica sanitização de entradas URL.

## Parâmetros

| Variável   | Tipo   | Descrição         |
| ---------- | ------ | ----------------- |
| url        | string | URL alvo          |
| param_name | string | Nome do parâmetro |

## Funcionamento

Envia múltiplos protocolos maliciosos.

## Como Foi Feita

A implementação utiliza requests.get() com payloads SSRF.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Sanitização
    Validate URL Input Sanitization
    ...    https://site.com/import
    ...    file
```

---

# Validate Security Logging

## Objetivo

Valida logs de segurança.

## Parâmetros

| Variável   | Tipo   | Descrição       |
| ---------- | ------ | --------------- |
| action_url | string | URL da ação     |
| log_url    | string | URL dos logs    |
| payload    | dict   | Payload enviado |
| method     | string | Método HTTP     |

## Funcionamento

Executa ações inseguras e verifica geração de logs.

## Como Foi Feita

Utiliza requests para executar ações e consultar logs.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Logs
    Validate Security Logging
    ...    https://site.com/login
    ...    https://site.com/logs
```

---

# Check Log for Failed Logins

## Objetivo

Valida logs de falhas de login.

## Parâmetros

| Variável       | Tipo   | Descrição      |
| -------------- | ------ | -------------- |
| login_url      | string | URL de login   |
| log_url        | string | URL dos logs   |
| email          | string | Usuário        |
| wrong_password | string | Senha inválida |

## Funcionamento

Executa login inválido e valida geração de logs.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Log Login
    Check Log for Failed Logins
    ...    https://site.com/login
    ...    https://site.com/logs
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Alerting Mechanism

## Objetivo

Valida mecanismos de alerta.

## Parâmetros

| Variável       | Tipo   | Descrição            |
| -------------- | ------ | -------------------- |
| login_url      | string | URL login            |
| alert_url      | string | URL alertas          |
| email          | string | Usuário              |
| wrong_password | string | Senha inválida       |
| attempts       | int    | Número de tentativas |

## Funcionamento

Executa múltiplas falhas de login para disparar alertas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Alertas
    Validate Alerting Mechanism
    ...    https://site.com/login
    ...    https://site.com/alerts
    ...    admin@site.com
    ...    senhaerrada
```

---

# Should Not Access Resource Without Authentication

## Objetivo

Valida bloqueio de acesso sem autenticação.

## Parâmetros

| Variável | Tipo   | Descrição     |
| -------- | ------ | ------------- |
| url      | string | URL protegida |
| method   | string | Método HTTP   |

## Funcionamento

Tenta acessar recursos protegidos sem token.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Auth
    Should Not Access Resource Without Authentication
    ...    https://site.com/admin
```

---

# Should Not Access Resource With Different User Role

## Objetivo

Valida controle de acesso por perfil.

## Parâmetros

| Variável | Tipo   | Descrição            |
| -------- | ------ | -------------------- |
| url      | string | URL protegida        |
| headers  | dict   | Headers autenticados |

## Funcionamento

Executa acesso utilizando usuário sem permissão.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Role
    Should Not Access Resource With Different User Role
    ...    https://site.com/admin
    ...    ${HEADERS}
```

---

# Validate Horizontal Privilege Escalation

## Objetivo

Valida escalonamento horizontal de privilégios.

## Parâmetros

| Variável          | Tipo   | Descrição            |
| ----------------- | ------ | -------------------- |
| url               | string | URL alvo             |
| headers           | dict   | Headers autenticados |
| forbidden_user_id | string | ID proibido          |

## Funcionamento

Tenta acessar dados de outro usuário.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Escalonamento Horizontal
    Validate Horizontal Privilege Escalation
    ...    https://site.com/user/2
    ...    ${HEADERS}
    ...    2
```

---

# Validate Vertical Privilege Escalation

## Objetivo

Valida escalonamento vertical de privilégios.

## Parâmetros

| Variável | Tipo   | Descrição            |
| -------- | ------ | -------------------- |
| url      | string | URL administrativa   |
| headers  | dict   | Headers autenticados |

## Funcionamento

Verifica acesso indevido a funções administrativas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Escalonamento Vertical
    Validate Vertical Privilege Escalation
    ...    https://site.com/admin
    ...    ${HEADERS}
```

---

# Check Default Credentials

## Objetivo

Testa credenciais padrão conhecidas.

## Parâmetros

| Variável         | Tipo   | Descrição            |
| ---------------- | ------ | -------------------- |
| url              | string | URL base             |
| endpoint         | string | Endpoint login       |
| credentials_list | list   | Lista de credenciais |

## Funcionamento

Executa múltiplos logins com usuários padrão.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Credenciais Padrão
    Check Default Credentials
    ...    https://site.com
    ...    /login
    ...    ${CREDS}
```

---

# Validate Security Headers

## Objetivo

Valida headers de segurança HTTP.
Valida headers de segurança HTTP.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |
| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Verifica headers como CSP e HSTS.
Verifica headers como CSP e HSTS.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Headers
    Validate Security Headers
    ...    https://site.com
```

---

# Check Open Ports

## Objetivo

Realiza varredura de portas abertas.

## Parâmetros

| Variável | Tipo   | Descrição       |
| -------- | ------ | --------------- |
| host     | string | Host alvo       |
| ports    | list   | Lista de portas |

## Funcionamento

Executa conexões TCP para identificar portas abertas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Portas
    Check Open Ports
    ...    site.com
    ...    ${PORTS}
```

---

# Validate Debug Mode Disabled

## Objetivo

Verifica exposição de mensagens de debug.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Busca stack traces e mensagens de erro.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Debug
    Validate Debug Mode Disabled
    ...    https://site.com
```

---

# Test Weak Password Policy

## Objetivo

Valida aceitação de senhas fracas.

## Parâmetros

| Variável      | Tipo   | Descrição   |
| ------------- | ------ | ----------- |
| url           | string | URL base    |
| endpoint      | string | Endpoint    |
| email         | string | Usuário     |
| weak_password | string | Senha fraca |

## Funcionamento

Tenta registrar ou autenticar utilizando senhas fracas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Senha Fraca
    Test Weak Password Policy
    ...    https://site.com
    ...    /register
    ...    user@site.com
    ...    123456
```

---

# Test Account Lockout
# Check Open Ports

## Objetivo

Realiza varredura de portas abertas.

## Parâmetros

| Variável | Tipo   | Descrição       |
| -------- | ------ | --------------- |
| host     | string | Host alvo       |
| ports    | list   | Lista de portas |

## Funcionamento

Executa conexões TCP para identificar portas abertas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Portas
    Check Open Ports
    ...    site.com
    ...    ${PORTS}
```

---

# Validate Debug Mode Disabled

## Objetivo

Verifica exposição de mensagens de debug.

## Parâmetros

| Variável | Tipo   | Descrição |
| -------- | ------ | --------- |
| url      | string | URL alvo  |

## Funcionamento

Busca stack traces e mensagens de erro.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Debug
    Validate Debug Mode Disabled
    ...    https://site.com
```

---

# Test Weak Password Policy

## Objetivo

Valida aceitação de senhas fracas.

## Parâmetros

| Variável      | Tipo   | Descrição   |
| ------------- | ------ | ----------- |
| url           | string | URL base    |
| endpoint      | string | Endpoint    |
| email         | string | Usuário     |
| weak_password | string | Senha fraca |

## Funcionamento

Tenta registrar ou autenticar utilizando senhas fracas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Senha Fraca
    Test Weak Password Policy
    ...    https://site.com
    ...    /register
    ...    user@site.com
    ...    123456
```

---

# Test Account Lockout

## Objetivo

Valida bloqueio de conta após múltiplas falhas.
Valida bloqueio de conta após múltiplas falhas.

## Parâmetros

| Variável       | Tipo   | Descrição      |
| -------------- | ------ | -------------- |
| url            | string | URL base       |
| endpoint       | string | Endpoint login |
| email          | string | Usuário        |
| wrong_password | string | Senha inválida |
| attempts       | int    | Tentativas     |
| Variável       | Tipo   | Descrição      |
| -------------- | ------ | -------------- |
| url            | string | URL base       |
| endpoint       | string | Endpoint login |
| email          | string | Usuário        |
| wrong_password | string | Senha inválida |
| attempts       | int    | Tentativas     |

## Funcionamento

Executa múltiplas falhas consecutivas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Lockout
    Test Account Lockout
    ...    https://site.com
    ...    /login
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Session Management

## Objetivo

Valida gerenciamento de sessão.

## Parâmetros

| Variável      | Tipo   | Descrição     |
| ------------- | ------ | ------------- |
| login_url     | string | URL login     |
| protected_url | string | URL protegida |
| payload       | dict   | Credenciais   |

## Funcionamento

Executa autenticação e valida tokens válidos e inválidos.
Executa múltiplas falhas consecutivas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Lockout
    Test Account Lockout
    ...    https://site.com
    ...    /login
    ...    admin@site.com
    ...    senhaerrada
```

---

# Validate Session Management

## Objetivo

Valida gerenciamento de sessão.

## Parâmetros

| Variável      | Tipo   | Descrição     |
| ------------- | ------ | ------------- |
| login_url     | string | URL login     |
| protected_url | string | URL protegida |
| payload       | dict   | Credenciais   |

## Funcionamento

Executa autenticação e valida tokens válidos e inválidos.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Sessão
    Validate Session Management
    ...    https://site.com/login
    ...    https://site.com/profile
Validar Sessão
    Validate Session Management
    ...    https://site.com/login
    ...    https://site.com/profile
    ...    ${PAYLOAD}
```

---

# Test Credential Stuffing

## Objetivo

Executa ataques de credential stuffing.

## Parâmetros

| Variável        | Tipo   | Descrição            |
| --------------- | ------ | -------------------- |
| url             | string | URL base             |
| endpoint        | string | Endpoint login       |
| credential_list | list   | Lista de credenciais |

## Funcionamento

Executa múltiplos logins utilizando credenciais vazadas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Credential Stuffing
    Test Credential Stuffing
    ...    https://site.com
    ...    /login
    ...    ${CREDS}
```

---

# Test Credential Stuffing

## Objetivo

Executa ataques de credential stuffing.

## Parâmetros

| Variável        | Tipo   | Descrição            |
| --------------- | ------ | -------------------- |
| url             | string | URL base             |
| endpoint        | string | Endpoint login       |
| credential_list | list   | Lista de credenciais |

## Funcionamento

Executa múltiplos logins utilizando credenciais vazadas.

## Exemplo de Uso

```robot
*** Test Cases ***
Validar Credential Stuffing
    Test Credential Stuffing
    ...    https://site.com
    ...    /login
    ...    ${CREDS}
```


