Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcos_php

Segurança dos dados

Recommended Posts

Tenho um banco mysql onde uma das tabelas possui mais de 8 mil registros.

 

O campo TITULO, curiosamente, está sendo modificando de forma desconhecida.

 

Está sendo inserido um código javascript logo após o texto do titulo no banco.

 

Algo como: Aqui o titulo original <script..... src=... /script>

 

Restaurei o backup mas no dia seguinte novamente estava la o código malicioso novamente em todas as linhas do campo 'titulo'.

 

Todas as vezes q isso ocorre, desaparecem todas as letras acentuadas do campo (inscrição -> inscrio).

 

Não sei como este acesso ao BD está sendo feito. Já trocamos a senha do banco, mas as aleterações continuam.

 

Alguém sabe dizer o que pode estar acontecendo e como resolver?

 

De já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente existe uma falha sem sua aplicação e o cracker deve estar usando ataques de Injeção de SQL (SQL Injection).

 

Não é um problema de senha ou mesmo um problema de permissão, mas sim um problema de segurança da sua aplicação (falha de desenvolvimento).

 

Leitura recomendada:

http://pt.wikipedia.org/wiki/Sql_injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

prezado 'prog',

 

está descartada a possibilidade de sql injection.

 

aparentemente está sendo feito por algum script e de forma automática.

 

leveria mto tempo para dar um update numa tabela com mais de 8 mil linhas (daria timeout).

 

e um update que 'acrscenta' o código do script, sem excluir a informação já armazenada.

 

e como ja relatei, tem o fato da remoção misteriosa (pra mim) dos acentos.

 

por esta razão, acreditamos nao estar sendo feito via formulário.

 

ja fizemos simulações e todas sem sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uni em um script só, os melhores scripts anti sql injection que pesquisei:

 

anti_injection.php

<?php

function anti_injection($sql){
  $sql = preg_replace(sql_regcase("/(from|select|insert|delete|=|where|drop table|show tables|#|\*|--|\\\\)/"), "" ,$sql);
  $sql = trim($sql);
  $sql = strip_tags($sql);
  $sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
return $sql;
  if (!is_numeric($sql)) {
             $sql= get_magic_quotes_gpc() ? stripslashes($sql) : $sql;
             $sql= function_exists("mysql_real_escape_string") ? mysql_real_escape_string($sql) : mysql_escape_string($sql);
         }
         return $sql;
	  } 

?>

 

Para usar essa função, basta chama-la assim:

 

<?
include_once('anti_injection.php');

$usuario            = anti_injection($_POST["usuario"]);
$senha              = anti_injection($_POST["senha"]);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

prezados matias e fernando,

 

está descartada a possibilidade de sql injection.

 

aparentemente está sendo feito por algum script e de forma automática.

 

leveria mto tempo para dar um update numa tabela com mais de 8 mil linhas (daria timeout).

 

e um update que 'acrscenta' o código do script, sem excluir a informação já armazenada.

 

e como ja relatei, tem o fato da remoção misteriosa (pra mim) dos acentos.

 

por esta razão, acreditamos nao estar sendo feito via formulário.

 

ja fizemos simulações e todas sem sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo assim, ainda pode ser falha da aplicação...

 

Se você esta descartando a possibilidade de ser SQL Injection, já procurou alguma falha de Code Injection?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou supor uma situação...

Uma página de Upload, o cracker pode fazer um upload de um arquivo indesejado, por exemplo, um script PHP, que execute tarefas. Scripts com includes dinâmicos também podem ser explorados.

 

Outra possibilidade seria uma falha por parte do próprio provedor de hospedagem, falha na permissão dos arquivos ou mesmo em componentes do sistema operacional.

Pode passar detalhes técnicos sobre a infra-estrutura? É um host alugado? Dedicado? Compartilhado?

 

---

 

Algum conteúdo sobre o Code Injection:

http://en.wikipedia.org/wiki/Code_injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que possa ser a segunda opção.

 

Está no ig, um servidor dedicado.

 

Eles alegam se tratar de uma falha na aplicação, mas ainda não sei como isso possa estar acontecendo, razão que me fez compartilhar do problema aqui.

 

Utiliza php com orientação a objeto, usando recursos de url amigável e o fremework smarty.

 

Fui contratado recentemete para cuidar do site, e ja o recebi com esse pepino.

 

Já olhei todo o código e não vi nada que possa pertmiri uma injeção de código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

prezados matias e fernando,

 

está descartada a possibilidade de sql injection.

 

aparentemente está sendo feito por algum script e de forma automática.

 

leveria mto tempo para dar um update numa tabela com mais de 8 mil linhas (daria timeout).

 

e um update que 'acrscenta' o código do script, sem excluir a informação já armazenada.

 

e como ja relatei, tem o fato da remoção misteriosa (pra mim) dos acentos.

 

por esta razão, acreditamos nao estar sendo feito via formulário.

 

ja fizemos simulações e todas sem sucesso.

 

Marcos, se você permitir, me passe o link do site (por mp) para que eu veja o nível de segurança.

 

Eu acho que você não pode descartar a possibilidade de SQL Injection.

 

Outra causa pode ser a hospedagem, pode parecer mentira, mas uma vez começou a acontecer algumas coisas estranhas no BD de um sistema q eu fiz, o sistema era muito vacinado, o banco era bem feitinho, não estava entendendo... quando fui falar com a hospedagem, eles disseram que estavam atualizando alguma coisa no banco... daí que veio a desconfiança e perguntei pra eles se isso poderia interferir no meu BD, no próximo dia eles me confirmaram que a manutenção no host estava causando isso em outros clientes também....

 

Mas mesmo assim, não descarte o SQL Injection.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que movendo este tópico para a área de PHP você terá mais chances de encontrar outras idéias e possibilidades sobre esta falha. Vou ver com alguém para mover o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom,

primeira questao e de que forma estes teus registros foram criado? atraves de insercao por alguma page do sistema? Se sim verifique a vulnerabidade da mesma.

Segundo, existe um arquivo de conf com user e senha do BD? Se sim, verifique o chmod do diretorio.

Terceiro, em todas as suas execucoes sql q tenha duvidas sobre seguranca faca uma verificacao do host de onde vem as execucoes SQL.

Por ultimo verifique todas as suas URL's se existe a possibilidade de se conseguir fazer uma URL INJECTION copiando um c99shell para seu server.

Existem varias outras formas de invasao, mais estas sao as mais usadas.

 

Passe depois o endereco do sistema para que possamos ajudar testando vulnerabilidades

 

Abracos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É meu, 2012 ainda nem chegou e coisas estranhas já vem acontecendo. http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif

 

Mas por aparecer um <script>.... acho que seria alguém tentando, de algum modo, fazer uma brincadeira no site... um ataque XSS.

 

Já vi gente tentando fazer ataques XSS e tentando injetar algo como:

 

<script type=text/javascript>alert('site hackeado!'); </script>

 

O que você precisa fazer, são testes... testes de vulnerabilidade do site, pela URL, forms, etc... tem várias maneiras de você atacar um site, até mesmo sem precisar acessá-lo.

 

Abraços!

 

E se você quiser me passar o link, eu posso tentar te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.