Junte-se
à comunidade
Inscreva-se

Ataques por injecção de comandos SQL

Maio 2013

Injecção de comandos SQL

Os ataques por injecção de comandos SQL são ataques que visam os sites web apoiando-se em bases de dados relacionais.

Neste tipo de site, os parâmetros são passados à base de dados sob a forma de um pedido SQL. Assim, se o projectista não efectuar nenhum controlo sobre os parâmetros passados no pedido SQL, é possível que um pirata altere o pedido a fim de aceder ao conjunto da base de dados, ou mesmo alterar o conteúdo.
Com efeito, certos caracteres permitem conectar vários pedidos SQL ou ignorar a sequência do pedido. Assim, inserindo este tipo de carácter no pedido, um pirata pode potencialmente executar o pedido à sua escolha.


Vejamos o seguinte pedido, esperando como parâmetro um nome de utilizador:

SELECT * FROM utilisateurs WHERE nom="$nom";


Basta que um pirata introduza um nome como “toto” OR 1=1 OR nome = " titi” para que o pedido se torne no seguinte:

SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";


Assim, com o pedido acima, a cláusula WHERE sempre é realizada, que significa que devolverá os registos que correspondem a todos os utilizadores.

Procedimentos armazenados

Além disso, certos sistemas de gestão de bases de dados, como Microsoft SQL Server, possuem procedimentos armazenados que permitem lançar comandos de administração. Estes procedimentos armazenados são potencialmente perigosos, na medida em que podem permitir a um utilizador mal-intencionado executar comandos do sistema, podendo conduzir a uma eventual intrusão.

Desfiles

Diversas regras permitem precaver-se contra os ataques por injecção de comandos SQL:

  • Verificar o formato dos dados introduzidos, nomeadamente a presença de caracteres especiais;
  • Não afixar mensagens de erro explícitas que mostram o pedido ou uma parte do pedido SQL.
  • Suprimir as contas de utilizadores não utilizadas, nomeadamente as contas por defeito;
  • Evitar as contas sem palavra-passe;
  • Restringir ao mínimo os privilégios das contas utilizadas;
  • Suprimir os procedimentos armazenados.

A ver igualmente

Comunidade de assistência e de conselho.


    Angriffe durch die Einschleusung von SQL Befehlen
    Angriffe durch die Einschleusung von SQL Befehlen
    SQL injection attacks
    SQL injection attacks
    Ataques de inyección SQL
    Ataques de inyección SQL
    Attaques par injection de commandes SQL
    Attaques par injection de commandes SQL
    Attacchi SQL injection
    Attacchi SQL injection
    Este documento, intitulado « Ataques por injecção de comandos SQL »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.
    Receber a nossa newsletter

    Cross-Site Scripting
    Engenharia social (social engineering)