MySQL LOAD_FILE() e INTO OUTFILE() Sql Injection
Neste artigo, discutiremos a função MySQL LOAD_FILE() e a função INTO OUTFILE() e Sql Injection. O MySQL fornece as funções LOAD_FILE() e INTO OUTFILE() que podem ser usadas para ler ou gravar arquivos no sistema de arquivos do servidor onde o banco de dados MySQL está sendo executado. Essas funções podem ser vulneráveis a ataques de injeção de SQL se a entrada do usuário não for devidamente sanitizada.
Um invasor pode usar a injeção de SQL para modificar o caminho do arquivo passado para a função LOAD_FILE() ou INTO OUTFILE() para acessar ou gravar em arquivos não autorizados no servidor. Por exemplo, um invasor pode usar a injeção de SQL para ler arquivos confidenciais no servidor ou para gravar código mal-intencionado no servidor, levando potencialmente a um maior comprometimento do sistema.
Para evitar ataques de injeção de SQL ao usar essas funções, é importante validar e limpar adequadamente qualquer entrada do usuário usada como parâmetro na função. Além disso, também é uma boa prática usar a conta de usuário MySQL com menos privilégios ao conectar-se ao banco de dados, pois isso limitará o dano potencial que um invasor pode causar se conseguir injetar SQL mal-intencionado com êxito.
<?php
$file_path = $_GET['file'];
$sql = "SELECT * FROM users WHERE profile_picture = LOAD_FILE('" . $file_path . "')";
$result = mysqli_query($connection, $sql);
?>
Uma amostra de código PHP vulnerável que usa a função MySQL INTO OUTFILE():
<?php
$file_path = $_POST['file'];
$content = $_POST['content'];
$sql = "SELECT '".$content."' INTO OUTFILE '" . $file_path . "'";
$result = mysqli_query($connection, $sql);
?>
Neste post, discutimos a função MySQL LOAD_FILE() e a função INTO OUTFILE() e Sql Injection, vejo você no próximo post, cuide-se.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)