Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Análise de vulnerabilidade do arquivo html/socio/sistema/controller/import_modais_integracao.php #200

Open
joaopontes22 opened this issue May 8, 2024 · 2 comments
Labels
Security MN análise

Comments

@joaopontes22
Copy link
Contributor

Vulnerability Analysis
A vulnerabilidade presente no código é a falta de proteção contra SQL Injection.

Ao construir a query SQL para recuperar os dados da tabela infoboletofacil, a diretiva WHERE 1 é utilizada. Isso significa que todos os registros da tabela serão retornados, sem a aplicação de nenhum filtro, o que pode abrir brechas para a execução de SQL Injection.

Para corrigir essa vulnerabilidade, você deve usar instruções preparadas (prepared statements) ao lidar com consultas SQL. Isso ajuda a separar os dados dos comandos SQL, impedindo que um invasor injete comandos maliciosos.

Aqui está um exemplo de como você pode reescrever a consulta com um prepared statement:

$statement = mysqli_prepare($conexao, "SELECT `api`, `token_api`, `sandbox`, `token_sandbox`, `val_min_boleto_uni`, `max_dias_pos_venc`, `juros(%)`, `multa(%)`, `val_max_parcela`, `val_min_parcela`, `agradecimento`, `dias_boleto_a_vista`, `dias_venc_carne_op1`, `dias_venc_carne_op2`, `dias_venc_carne_op3`, `dias_venc_carne_op4`, `dias_venc_carne_op5`, `dias_venc_carne_op6` FROM `infoboletofacil`");
if ($statement) {
  mysqli_stmt_execute($statement);
  mysqli_stmt_bind_result($statement, $api, $token_api, $sandbox, $token_sandbox, $val_min_boleto_uni, $max_dias_pos_venc, $juros, $multa, $val_max_parcela, $val_min_parcela, $agradecimento, $dias_boleto_a_vista, $dias_venc_carne_op1, $dias_venc_carne_op2, $dias_venc_carne_op3, $dias_venc_carne_op4, $dias_venc_carne_op5, $dias_venc_carne_op6);
  while (mysqli_stmt_fetch($statement)) {
    // Processar os dados
  }
}

Certifique-se de substituir a parte de // Processar os dados pela lógica que você deseja após recuperar os resultados da consulta.

Além disso, é importante validar, limpar e sanitizar todas as entradas de dados do usuário antes de usá-las em queries SQL para garantir a segurança do seu aplicativo.

@joaopontes22 joaopontes22 added the Security MN análise label May 8, 2024
nicolly015 added a commit that referenced this issue Jun 19, 2024
@nicolly015
Copy link
Contributor

  • O comentário foi útil? 3 = Neutro

  • O erro foi fácil de localizar? 5 = Muito fácil

  • Foi possível corrigir o erro? Possível

  • O quão fácil de corrigir? 5 = Muito fácil

Obs: esse código também apresenta o erro 500.

@nicolly015
Copy link
Contributor

Testando lado servidor

Captura de tela de 2024-07-10 12-34-34

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Security MN análise
Projects
None yet
Development

No branches or pull requests

2 participants