Jump to content
AnthonyKamers

Site "exploited"/"hacked" pelo SQL PHP

Recommended Posts

Olá

Fiz um site e ao pôr online, depois de duas semanas ele foi "hackeado"/"exploited".

 

Uso MySQLI para me conectar pelo banco de dados e descobri que é só quando eu uso 

"SELECT * FROM"

e eu uso a variável, que o exploit se "instala".

 

Como no seguinte código:

$sql4 = mysqli_query($con, "SELECT * FROM ... WHERE ... != '1' ORDER BY RAND() LIMIT 1") or die(mysqli_error($con));
$ln4 = mysqli_fetch_assoc($sql4);
$teste = $ln4['teste'];

 

Quando eu coloco "echo" na variável $teste, o exploit "começa".

 

Mas se eu não me conectar com o banco de dados, o exploit não funciona.

 

Há como evitar isso?

Não uso prepared statement, se eu usá-lo, não poderá mais ser hackeado?

 

Como posso eviar isso?

 

Conto com a ajuda de todos.

 

Desde já agradeço

Share this post


Link to post
Share on other sites

Você tento usar uma fuction SQL FILTER

 

 

function SqlFilter($str)
{
    if (!is_numeric($str)) {
        $str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
        $str = function_exists('mysql_real_escape_string') ? mysqli_real_escape_string($str) : mysqli_escape_string($str);
    }
    return trim($str);
}

 

METHOD POST você chama SQL FILTER para escape string

 

exemplo:

 

 

<?php 

$nome = $_POST["nome"];

// você usa 

$nome = SqlFilter($_POST["nome"]);

// ou tenta 

$nome = addslashes($_POST["nome"]);

?>

 

Share this post


Link to post
Share on other sites

Eu nem estou dando POST para pegar os resultados, pois estou quero listar todos os resultados do DB.

 

Dessa forma, eu não preciso usar.

 

Mas o problema é quando eu uso mysql ou mysqli, aí entra a tela de exploit:

 

Share this post


Link to post
Share on other sites

Usei o seguinte código com prepared statement:

<?php
	$idDif="1";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
$link = new PDO("mysql:host=$host;dbname=$db", "$user", "$pass", $options);
$stmt = $link->prepare("SELECT * from `teste` WHERE idTeste!=?");
$stmt->execute([$idDif]);
$result = $stmt->fetchAll();

foreach ($result as $row):
?>

<h2 style="text-align:center;margin:0 auto">
    <?=$row["nomeTeste"]?>
</h2>
<br/>
<div>
    <p>
        <?=$row["valorTeste"]?>
    </p>
    <hr style="color:black;width:10%"/>
</div>

<?php endforeach;?>

e mesmo assim, o exploit continua.

 

Não sei como fizeram para inserir dados no servidor e quando eu acesso meu banco de dados ele bloqueia.

 

 

Como posso resolver?

Share this post


Link to post
Share on other sites

pode ser que seja suspeita de invasão ou de site malicioso ou pode ser seu ip que tá bloqueado, tem um site que controla isso e se for esse o caso tu pode solicitar desbloqueio clicando num link que aparece na tela nesses caso mas tem que ter certeza se é isso porque se tiver um link malicioso ferra mais ainda

Share this post


Link to post
Share on other sites

Não foi hackeado. Se está exibindo apenas quando você retorna no banco de dados, apenas está no seu banco de dados.

O nome disso é XSS, você precisa retirar os códigos antes de salvar algo no banco de dados.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By wwwendel
      Saudação Ho! Oráculo!
      Clico em um ícone que faz a busca no banco por id, isso em laravel, só que na Route:: quando busca a página dá (not found).
      Eu já modifiquei o primaryKey de protected para public... bem vou disponibilizar os arquivos.
    • By Thalles Rangel
      Galera, fiz um crud o professor até explica como funciona cada, mas ele não ensina a criar um botão que chama uma função que apaga, como seria feito? algum exemplo?
      link do projeto: https://www.guj.com.br/t/botao-para-alterar-em-php/385691
      tudo funciona, a inserção, a pesquisa, agora falta o botão de editar e o botão de excluir (não sei colocar isso) alguém em dá um help?
    • By Thalles Rangel
      Galera, fiz um crud o professor até explica como funciona cada, mas ele não ensina a criar um botão que chama uma função que apaga, como seria feito? algum exemplo?
      link do projeto: https://www.guj.com.br/t/botao-para-alterar-em-php/385691
      tudo funciona, a inserção, a pesquisa, agora falta o botão de editar e o botão de excluir (não sei colocar isso) alguém em dá um help?
    • By Thalles Rangel
      Galera, fiz um crud o professor até explica como funciona cada, mas ele não ensina a criar um botão que chama uma função que apaga, como seria feito? algum exemplo?
      link do projeto: https://www.guj.com.br/t/botao-para-alterar-em-php/385691
      tudo funciona, a inserção, a pesquisa, agora falta o botão de editar e o botão de excluir (não sei colocar isso) alguém em dá um help?
    • By Thalles Rangel
      Galera, fiz um curd o professor até explica como funciona cada, mas ele não ensina a criar um botão que chama uma função que apaga, como seria feito? algum exemplo?
      link do projeto: https://www.guj.com.br/t/botao-para-alterar-em-php/385691
      tudo funciona, a inserção, a pesquisa, agora falta o botão de editar e o botão de excluir (não sei colocar isso) alguém em dá um help?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.