nilsonLazarin / WeGIA

WeGIA: Web gerenciador para instituições assistenciais
Other
5 stars 6 forks source link

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

Open joaopontes22 opened 3 months ago

joaopontes22 commented 3 months ago

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.

nicolly015 commented 2 months ago

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

nicolly015 commented 1 month ago

Testando lado servidor

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